Trait smart_config::de::WellKnown  
source · pub trait WellKnown: 'static + Sized {
    type Deserializer: DeserializeParam<Self>;
    const DE: Self::Deserializer;
}Expand description
Parameter type with well-known deserializer.
Conceptually, this means that the type is known to behave well when deserializing data from a Value
(ordinarily, using serde::Deserialize).
§Implementations
Basic well-known types include:
These types use Serde deserializer.
WellKnown is also implemented for more complex types:
| Rust type | Deserializer | Expected JSON | 
|---|---|---|
| Duration | WithUnit | string or object | 
| ByteSize | WithUnit | string or object | 
| Option | Optional† | value, or null, or nothing | 
| Vec,[_; N],HashSet,BTreeSet | Repeated | array | 
| HashMap,BTreeMap | RepeatedEntries | object | 
† Options handling can be customized via WellKnownOption or CustomKnownOption traits.
Required Associated Types§
sourcetype Deserializer: DeserializeParam<Self>
 
type Deserializer: DeserializeParam<Self>
Type of the deserializer used for this type.
Required Associated Constants§
sourceconst DE: Self::Deserializer
 
const DE: Self::Deserializer
Deserializer instance.
Object Safety§
Implementations on Foreign Types§
source§impl WellKnown for IpAddr
 
impl WellKnown for IpAddr
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = _
source§impl WellKnown for SocketAddr
 
impl WellKnown for SocketAddr
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = _
source§impl WellKnown for bool
 
impl WellKnown for bool
type Deserializer = Serde<{ $crate::_basic_types!($($expecting)+) }>
const DE: Self::Deserializer = _
source§impl WellKnown for f32
 
impl WellKnown for f32
type Deserializer = Serde<{ $crate::_basic_types!($($expecting)+) }>
const DE: Self::Deserializer = _
source§impl WellKnown for f64
 
impl WellKnown for f64
type Deserializer = Serde<{ $crate::_basic_types!($($expecting)+) }>
const DE: Self::Deserializer = _
source§impl WellKnown for i8
 
impl WellKnown for i8
type Deserializer = Serde<{ $crate::_basic_types!($($expecting)+) }>
const DE: Self::Deserializer = _
source§impl WellKnown for i16
 
impl WellKnown for i16
type Deserializer = Serde<{ $crate::_basic_types!($($expecting)+) }>
const DE: Self::Deserializer = _
source§impl WellKnown for i32
 
impl WellKnown for i32
type Deserializer = Serde<{ $crate::_basic_types!($($expecting)+) }>
const DE: Self::Deserializer = _
source§impl WellKnown for i64
 
impl WellKnown for i64
type Deserializer = Serde<{ $crate::_basic_types!($($expecting)+) }>
const DE: Self::Deserializer = _
source§impl WellKnown for i128
 
impl WellKnown for i128
type Deserializer = Serde<{ $crate::_basic_types!($($expecting)+) }>
const DE: Self::Deserializer = _
source§impl WellKnown for isize
 
impl WellKnown for isize
type Deserializer = Serde<{ $crate::_basic_types!($($expecting)+) }>
const DE: Self::Deserializer = _
source§impl WellKnown for u8
 
impl WellKnown for u8
type Deserializer = Serde<{ $crate::_basic_types!($($expecting)+) }>
const DE: Self::Deserializer = _
source§impl WellKnown for u16
 
impl WellKnown for u16
type Deserializer = Serde<{ $crate::_basic_types!($($expecting)+) }>
const DE: Self::Deserializer = _
source§impl WellKnown for u32
 
impl WellKnown for u32
type Deserializer = Serde<{ $crate::_basic_types!($($expecting)+) }>
const DE: Self::Deserializer = _
source§impl WellKnown for u64
 
impl WellKnown for u64
type Deserializer = Serde<{ $crate::_basic_types!($($expecting)+) }>
const DE: Self::Deserializer = _
source§impl WellKnown for u128
 
impl WellKnown for u128
type Deserializer = Serde<{ $crate::_basic_types!($($expecting)+) }>
const DE: Self::Deserializer = _
source§impl WellKnown for usize
 
impl WellKnown for usize
type Deserializer = Serde<{ $crate::_basic_types!($($expecting)+) }>
const DE: Self::Deserializer = _
source§impl WellKnown for String
 
impl WellKnown for String
type Deserializer = Serde<{ $crate::_basic_types!($($expecting)+) }>
const DE: Self::Deserializer = _
source§impl WellKnown for Ipv4Addr
 
impl WellKnown for Ipv4Addr
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = _
source§impl WellKnown for Ipv6Addr
 
impl WellKnown for Ipv6Addr
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = _
source§impl WellKnown for SocketAddrV4
 
impl WellKnown for SocketAddrV4
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = _
source§impl WellKnown for SocketAddrV6
 
impl WellKnown for SocketAddrV6
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = _
source§impl WellKnown for Duration
 
impl WellKnown for Duration
type Deserializer = WithUnit
const DE: Self::Deserializer = WithUnit
source§impl WellKnown for PathBuf
 
impl WellKnown for PathBuf
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = _
source§impl WellKnown for NonZeroI8
 
impl WellKnown for NonZeroI8
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = _
source§impl WellKnown for NonZeroI16
 
impl WellKnown for NonZeroI16
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = _
source§impl WellKnown for NonZeroI32
 
impl WellKnown for NonZeroI32
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = _
source§impl WellKnown for NonZeroI64
 
impl WellKnown for NonZeroI64
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = _
source§impl WellKnown for NonZeroIsize
 
impl WellKnown for NonZeroIsize
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = _
source§impl WellKnown for NonZeroU8
 
impl WellKnown for NonZeroU8
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = _
source§impl WellKnown for NonZeroU16
 
impl WellKnown for NonZeroU16
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = _
source§impl WellKnown for NonZeroU32
 
impl WellKnown for NonZeroU32
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = _
source§impl WellKnown for NonZeroU64
 
impl WellKnown for NonZeroU64
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = _
source§impl WellKnown for NonZeroUsize
 
impl WellKnown for NonZeroUsize
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = _
source§impl WellKnown for H128
Available on crate feature primitive-types only. 
impl WellKnown for H128
primitive-types only.Accepts a hex string with an optional 0x prefix.
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = HASH_DE
source§impl WellKnown for H160
Available on crate feature primitive-types only. 
impl WellKnown for H160
primitive-types only.Accepts a hex string with an optional 0x prefix.
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = HASH_DE
source§impl WellKnown for H256
Available on crate feature primitive-types only. 
impl WellKnown for H256
primitive-types only.Accepts a hex string with an optional 0x prefix.
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = HASH_DE
source§impl WellKnown for H384
Available on crate feature primitive-types only. 
impl WellKnown for H384
primitive-types only.Accepts a hex string with an optional 0x prefix.
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = HASH_DE
source§impl WellKnown for H512
Available on crate feature primitive-types only. 
impl WellKnown for H512
primitive-types only.Accepts a hex string with an optional 0x prefix.
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = HASH_DE
source§impl WellKnown for H768
Available on crate feature primitive-types only. 
impl WellKnown for H768
primitive-types only.Accepts a hex string with an optional 0x prefix.
type Deserializer = Qualified<Serde<{ $crate::_basic_types!($($expecting)+) }>>
const DE: Self::Deserializer = HASH_DE
source§impl WellKnown for U128
Available on crate feature primitive-types only. 
impl WellKnown for U128
primitive-types only.Accepts a hex string with an mandatory 0x prefix. This prefix is required to clearly signal hex encoding
so that "34" doesn’t get mistaken for decimal 34.
type Deserializer = HexUintDeserializer
const DE: Self::Deserializer = HexUintDeserializer
source§impl WellKnown for U256
Available on crate feature primitive-types only. 
impl WellKnown for U256
primitive-types only.Accepts a hex string with an mandatory 0x prefix. This prefix is required to clearly signal hex encoding
so that "34" doesn’t get mistaken for decimal 34.
type Deserializer = HexUintDeserializer
const DE: Self::Deserializer = HexUintDeserializer
source§impl WellKnown for U512
Available on crate feature primitive-types only. 
impl WellKnown for U512
primitive-types only.Accepts a hex string with an mandatory 0x prefix. This prefix is required to clearly signal hex encoding
so that "34" doesn’t get mistaken for decimal 34.