Trait serde::de::Deserialize[][src]

pub trait Deserialize<'de>: Sized {
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
    where
        D: Deserializer<'de>
; }
Expand description

A data structure that can be deserialized from any data format supported by Serde.

Serde provides Deserialize implementations for many Rust primitive and standard library types. The complete list is here. All of these can be deserialized using Serde out of the box.

Additionally, Serde provides a procedural macro called serde_derive to automatically generate Deserialize implementations for structs and enums in your program. See the derive section of the manual for how to use this.

In rare cases it may be necessary to implement Deserialize manually for some type in your program. See the Implementing Deserialize section of the manual for more about this.

Third-party crates may provide Deserialize implementations for types that they expose. For example the linked-hash-map crate provides a LinkedHashMap<K, V> type that is deserializable by Serde because the crate provides an implementation of Deserialize for it.

Lifetime

The 'de lifetime of this trait is the lifetime of data that may be borrowed by Self when deserialized. See the page Understanding deserializer lifetimes for a more detailed explanation of these lifetimes.

Required methods

Deserialize this value from the given Serde deserializer.

See the Implementing Deserialize section of the manual for more information about how to implement this method.

Implementations on Foreign Types

Implementors

impl<'de> Deserialize<'de> for ArcStr

impl<'de> Deserialize<'de> for Substr

impl<'de> Deserialize<'de> for ComponentType

impl<'de> Deserialize<'de> for Type

impl<'de> Deserialize<'de> for Indices

impl<'de> Deserialize<'de> for Sparse

impl<'de> Deserialize<'de> for Values

impl<'de> Deserialize<'de> for Accessor

impl<'de> Deserialize<'de> for IndexComponentType

impl<'de> Deserialize<'de> for Checked<Type>

impl<'de> Deserialize<'de> for Interpolation

impl<'de> Deserialize<'de> for Property

impl<'de> Deserialize<'de> for Animation

impl<'de> Deserialize<'de> for Channel

impl<'de> Deserialize<'de> for Target

impl<'de> Deserialize<'de> for Sampler

impl<'de> Deserialize<'de> for Checked<Interpolation>

impl<'de> Deserialize<'de> for Checked<Property>

impl<'de> Deserialize<'de> for Asset

impl<'de> Deserialize<'de> for Buffer

impl<'de> Deserialize<'de> for View

impl<'de> Deserialize<'de> for Checked<Target>

impl<'de> Deserialize<'de> for Camera

impl<'de> Deserialize<'de> for Orthographic

impl<'de> Deserialize<'de> for Perspective

impl<'de> Deserialize<'de> for Checked<Type>

impl<'de> Deserialize<'de> for Indices

impl<'de> Deserialize<'de> for Sparse

impl<'de> Deserialize<'de> for Values

impl<'de> Deserialize<'de> for Accessor

impl<'de> Deserialize<'de> for Animation

impl<'de> Deserialize<'de> for Channel

impl<'de> Deserialize<'de> for Target

impl<'de> Deserialize<'de> for Sampler

impl<'de> Deserialize<'de> for Asset

impl<'de> Deserialize<'de> for Buffer

impl<'de> Deserialize<'de> for View

impl<'de> Deserialize<'de> for Camera

impl<'de> Deserialize<'de> for Orthographic

impl<'de> Deserialize<'de> for Perspective

impl<'de> Deserialize<'de> for Image

impl<'de> Deserialize<'de> for Material

impl<'de> Deserialize<'de> for NormalTexture

impl<'de> Deserialize<'de> for OcclusionTexture

impl<'de> Deserialize<'de> for Mesh

impl<'de> Deserialize<'de> for Primitive

impl<'de> Deserialize<'de> for Root

impl<'de> Deserialize<'de> for Node

impl<'de> Deserialize<'de> for Scene

impl<'de> Deserialize<'de> for Skin

impl<'de> Deserialize<'de> for Sampler

impl<'de> Deserialize<'de> for Texture

impl<'de> Deserialize<'de> for Info

impl<'de> Deserialize<'de> for Void

impl<'de> Deserialize<'de> for Image

impl<'de> Deserialize<'de> for MimeType

impl<'de> Deserialize<'de> for Material where
    Material: Default

impl<'de> Deserialize<'de> for PbrMetallicRoughness where
    PbrMetallicRoughness: Default

impl<'de> Deserialize<'de> for NormalTexture

impl<'de> Deserialize<'de> for OcclusionTexture

impl<'de> Deserialize<'de> for AlphaCutoff

impl<'de> Deserialize<'de> for EmissiveFactor

impl<'de> Deserialize<'de> for PbrBaseColorFactor

impl<'de> Deserialize<'de> for StrengthFactor

impl<'de> Deserialize<'de> for Checked<AlphaMode>

impl<'de> Deserialize<'de> for Mode

impl<'de> Deserialize<'de> for Mesh

impl<'de> Deserialize<'de> for Primitive

impl<'de> Deserialize<'de> for MorphTarget

impl<'de> Deserialize<'de> for Checked<Mode>

impl<'de> Deserialize<'de> for Checked<Semantic>

impl<'de> Deserialize<'de> for Root

impl<'de, T> Deserialize<'de> for Index<T>

impl<'de> Deserialize<'de> for Node

impl<'de> Deserialize<'de> for Scene

impl<'de> Deserialize<'de> for UnitQuaternion

impl<'de> Deserialize<'de> for Skin

impl<'de> Deserialize<'de> for MagFilter

impl<'de> Deserialize<'de> for MinFilter

impl<'de> Deserialize<'de> for WrappingMode

impl<'de> Deserialize<'de> for Sampler where
    Sampler: Default

impl<'de> Deserialize<'de> for Texture

impl<'de> Deserialize<'de> for Info

impl<'de> Deserialize<'de> for Checked<MagFilter>

impl<'de> Deserialize<'de> for Checked<MinFilter>

impl<'de> Deserialize<'de> for Checked<WrappingMode>

impl<'de, K, V, S> Deserialize<'de> for IndexMap<K, V, S> where
    K: Deserialize<'de> + Eq + Hash,
    V: Deserialize<'de>,
    S: Default + BuildHasher

impl<'de, T, S> Deserialize<'de> for IndexSet<T, S> where
    T: Deserialize<'de> + Eq + Hash,
    S: Default + BuildHasher

impl<'de, T: Scalar> Deserialize<'de> for X<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for XY<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for XYZ<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for XYZW<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for XYZWA<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for XYZWAB<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for IJKW<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M2x2<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M2x3<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M2x4<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M2x5<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M2x6<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M3x2<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M3x3<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M3x4<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M3x5<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M3x6<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M4x2<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M4x3<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M4x4<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M4x5<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M4x6<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M5x2<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M5x3<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M5x4<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M5x5<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M5x6<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M6x2<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M6x3<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M6x4<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M6x5<T> where
    T: Deserialize<'de>, 

impl<'de, T: Scalar> Deserialize<'de> for M6x6<T> where
    T: Deserialize<'de>, 

impl<'de> Deserialize<'de> for Dynamic

impl<'de, const D: usize> Deserialize<'de> for Const<D>

impl<'a, T, const R: usize, const C: usize> Deserialize<'a> for ArrayStorage<T, R, C> where
    T: Scalar + Deserialize<'a>, 

impl<'de, T, R, C, S> Deserialize<'de> for Matrix<T, R, C, S> where
    T: Scalar,
    R: Dim,
    C: Dim,
    S: Deserialize<'de>, 

impl<'de, T: Deserialize<'de>> Deserialize<'de> for Unit<T>

impl<'a, T, R: Dim, C: Dim> Deserialize<'a> for VecStorage<T, R, C> where
    T: Deserialize<'a>,
    R: Deserialize<'a>,
    C: Deserialize<'a>, 

impl<'a, T: Scalar, D: DimName> Deserialize<'a> for OPoint<T, D> where
    DefaultAllocator: Allocator<T, D>,
    <DefaultAllocator as Allocator<T, D>>::Buffer: Deserialize<'a>, 

impl<'a, T: Scalar, const D: usize> Deserialize<'a> for Rotation<T, D> where
    Owned<T, Const<D>, Const<D>>: Deserialize<'a>, 

impl<'a, T: Scalar> Deserialize<'a> for Quaternion<T> where
    Owned<T, U4>: Deserialize<'a>, 

impl<'a, T: SimdRealField> Deserialize<'a> for DualQuaternion<T> where
    T: Deserialize<'a>, 

impl<'a, T: Scalar, const D: usize> Deserialize<'a> for Translation<T, D> where
    Owned<T, Const<D>>: Deserialize<'a>, 

impl<'de, T, R, const D: usize> Deserialize<'de> for Isometry<T, R, D> where
    R: Deserialize<'de>,
    DefaultAllocator: Allocator<T, Const<"R: Deserialize<'de>, DefaultAllocator: Allocator<T, Const<D>>, Owned<T, Const<D>>: Deserialize<'de>, T: Scalar">>,
    Owned<T, Const<"R: Deserialize<'de>, DefaultAllocator: Allocator<T, Const<D>>, Owned<T, Const<D>>: Deserialize<'de>, T: Scalar">>: Deserialize<'de>,
    T: Scalar

impl<'de, T, R, const D: usize> Deserialize<'de> for Similarity<T, R, D> where
    T: Scalar + Deserialize<'de>,
    R: Deserialize<'de>,
    DefaultAllocator: Allocator<T, Const<"T: Scalar + Deserialize<'de>, R: Deserialize<'de>, DefaultAllocator: Allocator<T, Const<D>>, Owned<T, Const<D>>: Deserialize<'de>">>,
    Owned<T, Const<"T: Scalar + Deserialize<'de>, R: Deserialize<'de>, DefaultAllocator: Allocator<T, Const<D>>, Owned<T, Const<D>>: Deserialize<'de>">>: Deserialize<'de>, 

impl<'a, T: RealField, C: TCategory, const D: usize> Deserialize<'a> for Transform<T, C, D> where
    Const<D>: DimNameAdd<U1>,
    DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,
    Owned<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>: Deserialize<'a>, 

impl<'a, T: RealField + Deserialize<'a>> Deserialize<'a> for Orthographic3<T>

impl<'a, T: RealField + Deserialize<'a>> Deserialize<'a> for Perspective3<T>

impl<'de, T: ComplexField, R: DimMin<C>, C: Dim> Deserialize<'de> for Bidiagonal<T, R, C> where
    DimMinimum<R, C>: DimSub<U1>,
    DefaultAllocator: Allocator<T, R, C> + Allocator<T, DimMinimum<R, C>> + Allocator<T, DimDiff<DimMinimum<R, C>, U1>>,
    DimMinimum<R, C>: DimSub<U1>,
    DefaultAllocator: Allocator<T, R, C> + Allocator<T, DimMinimum<R, C>> + Allocator<T, DimDiff<DimMinimum<R, C>, U1>>,
    OMatrix<T, R, C>: Deserialize<'de>,
    OVector<T, DimMinimum<R, C>>: Deserialize<'de>,
    OVector<T, DimDiff<DimMinimum<R, C>, U1>>: Deserialize<'de>, 

impl<'de, T: SimdComplexField, D: Dim> Deserialize<'de> for Cholesky<T, D> where
    DefaultAllocator: Allocator<T, D, D>,
    DefaultAllocator: Allocator<T, D>,
    OMatrix<T, D, D>: Deserialize<'de>, 

impl<'de, T: ComplexField, R: DimMin<C>, C: Dim> Deserialize<'de> for ColPivQR<T, R, C> where
    DefaultAllocator: Allocator<T, R, C> + Allocator<T, DimMinimum<R, C>> + Allocator<(usize, usize), DimMinimum<R, C>>,
    DefaultAllocator: Allocator<T, R, C> + Allocator<T, DimMinimum<R, C>>,
    OMatrix<T, R, C>: Deserialize<'de>,
    PermutationSequence<DimMinimum<R, C>>: Deserialize<'de>,
    OVector<T, DimMinimum<R, C>>: Deserialize<'de>, 

impl<'de, T: ComplexField, R: DimMin<C>, C: Dim> Deserialize<'de> for FullPivLU<T, R, C> where
    DefaultAllocator: Allocator<T, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
    DefaultAllocator: Allocator<T, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
    OMatrix<T, R, C>: Deserialize<'de>,
    PermutationSequence<DimMinimum<R, C>>: Deserialize<'de>, 

impl<'de, T: ComplexField, D: DimSub<U1>> Deserialize<'de> for Hessenberg<T, D> where
    DefaultAllocator: Allocator<T, D, D> + Allocator<T, DimDiff<D, U1>>,
    DefaultAllocator: Allocator<T, D, D> + Allocator<T, DimDiff<D, U1>>,
    OMatrix<T, D, D>: Deserialize<'de>,
    OVector<T, DimDiff<D, U1>>: Deserialize<'de>, 

impl<'de, T: ComplexField, R: DimMin<C>, C: Dim> Deserialize<'de> for LU<T, R, C> where
    DefaultAllocator: Allocator<T, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
    DefaultAllocator: Allocator<T, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
    OMatrix<T, R, C>: Deserialize<'de>,
    PermutationSequence<DimMinimum<R, C>>: Deserialize<'de>, 

impl<'de, D: Dim> Deserialize<'de> for PermutationSequence<D> where
    DefaultAllocator: Allocator<(usize, usize), D>,
    DefaultAllocator: Allocator<(usize, usize), D>,
    OVector<(usize, usize), D>: Deserialize<'de>, 

impl<'de, T: ComplexField, R: DimMin<C>, C: Dim> Deserialize<'de> for QR<T, R, C> where
    DefaultAllocator: Allocator<T, R, C> + Allocator<T, DimMinimum<R, C>>,
    DefaultAllocator: Allocator<T, R, C> + Allocator<T, DimMinimum<R, C>>,
    OMatrix<T, R, C>: Deserialize<'de>,
    OVector<T, DimMinimum<R, C>>: Deserialize<'de>, 

impl<'de, T: ComplexField, D: Dim> Deserialize<'de> for Schur<T, D> where
    DefaultAllocator: Allocator<T, D, D>,
    DefaultAllocator: Allocator<T, D, D>,
    OMatrix<T, D, D>: Deserialize<'de>, 

impl<'de, T: ComplexField, R: DimMin<C>, C: Dim> Deserialize<'de> for SVD<T, R, C> where
    DefaultAllocator: Allocator<T, DimMinimum<R, C>, C> + Allocator<T, R, DimMinimum<R, C>> + Allocator<T::RealField, DimMinimum<R, C>>,
    DefaultAllocator: Allocator<T::RealField, DimMinimum<R, C>> + Allocator<T, DimMinimum<R, C>, C> + Allocator<T, R, DimMinimum<R, C>>,
    OMatrix<T, R, DimMinimum<R, C>>: Deserialize<'de>,
    OMatrix<T, DimMinimum<R, C>, C>: Deserialize<'de>,
    OVector<T::RealField, DimMinimum<R, C>>: Deserialize<'de>, 

impl<'de, T: ComplexField, D: Dim> Deserialize<'de> for SymmetricEigen<T, D> where
    DefaultAllocator: Allocator<T, D, D> + Allocator<T::RealField, D>,
    DefaultAllocator: Allocator<T, D, D> + Allocator<T::RealField, D>,
    OVector<T::RealField, D>: Deserialize<'de>,
    OMatrix<T, D, D>: Deserialize<'de>, 

impl<'de, T: ComplexField, D: DimSub<U1>> Deserialize<'de> for SymmetricTridiagonal<T, D> where
    DefaultAllocator: Allocator<T, D, D> + Allocator<T, DimDiff<D, U1>>,
    DefaultAllocator: Allocator<T, D, D> + Allocator<T, DimDiff<D, U1>>,
    OMatrix<T, D, D>: Deserialize<'de>,
    OVector<T, DimDiff<D, U1>>: Deserialize<'de>, 

impl<'de, T: RealField, D: Dim> Deserialize<'de> for UDU<T, D> where
    DefaultAllocator: Allocator<T, D> + Allocator<T, D, D>,
    OVector<T, D>: Deserialize<'de>,
    OMatrix<T, D, D>: Deserialize<'de>, 

impl<'de, T> Deserialize<'de> for Complex<T> where
    T: Deserialize<'de> + Num + Clone

impl<'de> Deserialize<'de> for Raw

impl<'de> Deserialize<'de> for RawRef<'de>

impl<'de> Deserialize<'de> for Map<String, Value>

impl<'de> Deserialize<'de> for Value

impl<'de> Deserialize<'de> for Number

impl<'de: 'a, 'a> Deserialize<'de> for &'a RawValue

impl<'de> Deserialize<'de> for Box<RawValue>

impl<'de, A: Array> Deserialize<'de> for SmallVec<A> where
    A::Item: Deserialize<'de>, 

impl<'de> Deserialize<'de> for Appearance

impl<'de> Deserialize<'de> for Component

impl<'de> Deserialize<'de> for Size

impl<'de, T> Deserialize<'de> for MixedId<T> where
    T: Deserialize<'de>, 

impl<'de> Deserialize<'de> for Def

impl<'de> Deserialize<'de> for Variant

impl<'de> Deserialize<'de> for SpritesheetId

impl<'de> Deserialize<'de> for IconRef

impl<'de> Deserialize<'de> for ModelRef

impl<'de> Deserialize<'de> for IconRefXylem

impl<'de> Deserialize<'de> for ModelRefXylem

impl<'de> Deserialize<'de> for Def

impl<'de> Deserialize<'de> for Shape

impl<'de> Deserialize<'de> for Storage

impl<'de> Deserialize<'de> for Def

impl<'de> Deserialize<'de> for Def

impl<'de> Deserialize<'de> for Def

impl<'de> Deserialize<'de> for Def

impl<'de> Deserialize<'de> for Def

impl<'de> Deserialize<'de> for Catalyst

impl<'de> Deserialize<'de> for CatalystRange

impl<'de> Deserialize<'de> for Multipliers

impl<'de> Deserialize<'de> for Def

impl<'de> Deserialize<'de> for Action

impl<'de> Deserialize<'de> for TriggerSkill

impl<'de> Deserialize<'de> for SkillChange

impl<'de> Deserialize<'de> for Edge

impl<'de> Deserialize<'de> for AlphaBeta

impl<'de> Deserialize<'de> for Duct

impl<'de> Deserialize<'de> for DuctType

impl<'de> Deserialize<'de> for RailDuctType

impl<'de> Deserialize<'de> for LiquidDuctType

impl<'de> Deserialize<'de> for ElectricityDuctType

impl<'de> Deserialize<'de> for Direction

impl<'de> Deserialize<'de> for RailDuctTypeXylem

impl<'de> Deserialize<'de> for MaybeDirection

impl<'de> Deserialize<'de> for LiquidDuctTypeXylem

impl<'de> Deserialize<'de> for Reaction

impl<'de> Deserialize<'de> for Put

impl<'de> Deserialize<'de> for Policy

impl<'de> Deserialize<'de> for FlowPolicy

impl<'de> Deserialize<'de> for Housing

impl<'de> Deserialize<'de> for Policy

impl<'de> Deserialize<'de> for SkillRequirement

impl<'de> Deserialize<'de> for Feature

impl<'de, U: Unit + 'static> Deserialize<'de> for PumpSpec<U>

impl<'de> Deserialize<'de> for Def

impl<'de> Deserialize<'de> for DefXylem

impl<'de> Deserialize<'de> for Def

impl<'de> Deserialize<'de> for Item

impl<'de> Deserialize<'de> for Def

impl<'de> Deserialize<'de> for Formula

impl<'de> Deserialize<'de> for DefaultFormula

impl<'de> Deserialize<'de> for NodeId

impl<'de> Deserialize<'de> for Node

impl<'de> Deserialize<'de> for CargoStorageEntry

impl<'de> Deserialize<'de> for GasStorageEntry

impl<'de> Deserialize<'de> for LiquidStorageEntry

impl<'de> Deserialize<'de> for Def

impl<'de> Deserialize<'de> for Def

impl<'de> Deserialize<'de> for Skill

impl<'de> Deserialize<'de> for TfsaveFile

impl<'de> Deserialize<'de> for Scenario

impl<'de> Deserialize<'de> for Config

impl<'de> Deserialize<'de> for TransformPrimitive

impl<'de> Deserialize<'de> for AnyDefXylem

impl<'de> Deserialize<'de> for AnyDef

impl<'de> Deserialize<'de> for State

impl<'de> Deserialize<'de> for CustomizableName

impl<'de> Deserialize<'de> for Unit

impl<'de> Deserialize<'de> for Position

impl<'de> Deserialize<'de> for Time

impl<'de> Deserialize<'de> for Instant

impl<'de, T> Deserialize<'de> for Rate<T> where
    T: Deserialize<'de>, 

impl<'de> Deserialize<'de> for LiquidVolume

impl<'de> Deserialize<'de> for LiquidViscosity

impl<'de> Deserialize<'de> for GasVolume

impl<'de> Deserialize<'de> for CargoSize

impl<'de> Deserialize<'de> for ElectricPower

impl<'de> Deserialize<'de> for ElectricEnergy

impl<'de> Deserialize<'de> for Brightness

impl<'de> Deserialize<'de> for Skill

impl<'de> Deserialize<'de> for RailForce

impl<'de> Deserialize<'de> for PipeForce

impl<'de> Deserialize<'de> for FanForce

impl<'de> Deserialize<'de> for VehicleSpeed

impl<'de> Deserialize<'de> for Hitpoint

impl<'de, U: Unit> Deserialize<'de> for Portion<U>

impl<'de, S, X> Deserialize<'de> for Id<S, X>

impl<'de, S, X> Deserialize<'de> for IdString<S, X>