pub trait Deserializer<'de>: Sized {
type Error: Error;
Show 34 methods
// Required methods
fn deserialize_identifier<V>(
self,
size: ReadEnumSize,
visitor: V,
) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_class_index<V>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_void<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_bool<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_char<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_int8<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_uint8<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_int16<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_uint16<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_int32<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_uint32<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_int64<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_uint64<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_real<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_vector4<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_quaternion<V>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_matrix3<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_rotation<V>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_qstransform<V>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_matrix4<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_transform<V>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_pointer<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_array<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_fixed_array<V>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_class_index_seq<V>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_enum<V>(
self,
name: &'static str,
variants: &'static [&'static str],
visitor: V,
) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_struct<V>(
self,
name: &'static str,
fields: &'static [&'static str],
visitor: V,
) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_variant<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_cstring<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_ulong<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_flags<V>(
self,
size: ReadEnumSize,
visitor: V,
) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_half<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
fn deserialize_stringptr<V>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
where V: Visitor<'de>;
// Provided method
fn deserialize_key<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor<'de> { ... }
}
Expand description
Deserializer
Required Associated Types§
Required Methods§
Sourcefn deserialize_identifier<V>(
self,
size: ReadEnumSize,
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_identifier<V>(
self,
size: ReadEnumSize,
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Hint that the Deserialize
type is expecting the discriminant of an enum variant.
Sourcefn deserialize_class_index<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_class_index<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize class index.
Sourcefn deserialize_void<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_void<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize a Void
value.
No type information.
This is often used to fill in generics elements with types for which generics are not used.
hkArray<hkBool>
->vtype
:TYPE_ARRAY
,vsubtype
:TYPE_BOOL
hkBool ->
vtype:
TYPE_BOOL,
vsubtype:
TYPE_VOID`- There is also a pattern
hkArray<void>
. The type information is unknown, but this member always contains theSERIALIZE_IGNORED
flag and can be skipped.
Sourcefn deserialize_bool<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_bool<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize a bool
value.
Sourcefn deserialize_char<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_char<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an char
value.
Sourcefn deserialize_int8<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_int8<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an i8
value.
If the format does not differentiate between i8
and i64
, a
reasonable implementation would be to cast the value to i64
and
forward to deserialize_i64
.
Sourcefn deserialize_uint8<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_uint8<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an u8
value.
Sourcefn deserialize_int16<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_int16<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an i16
value.
Sourcefn deserialize_uint16<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_uint16<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an u16
value.
Sourcefn deserialize_int32<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_int32<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an i32
value.
Sourcefn deserialize_uint32<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_uint32<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an u32
value.
Sourcefn deserialize_int64<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_int64<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an i64
value.
Sourcefn deserialize_uint64<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_uint64<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an u64
value.
Sourcefn deserialize_real<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_real<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an f32
value.
Sourcefn deserialize_vector4<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_vector4<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an Vector4
value.
Sourcefn deserialize_quaternion<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_quaternion<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an Quaternion
value.
Sourcefn deserialize_matrix3<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_matrix3<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an Matrix3
value.
Sourcefn deserialize_rotation<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_rotation<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an Rotation
value.
Sourcefn deserialize_qstransform<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_qstransform<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an QsTransform
value.
Sourcefn deserialize_matrix4<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_matrix4<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an Matrix4
value.
Sourcefn deserialize_transform<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_transform<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an Transform
value.
Sourcefn deserialize_pointer<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_pointer<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an Pointer
value.
Sourcefn deserialize_array<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_array<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an Array
value.
Sourcefn deserialize_fixed_array<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_fixed_array<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an fixed array(e.g. [bool; 3]
) value.
§Intention to separate methods
The methods for fixed size array(stack array) and hkArray
binary data are separated because they have different metadata.
Sourcefn deserialize_class_index_seq<V>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_class_index_seq<V>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize a Class Index Array value.
Sourcefn deserialize_enum<V>(
self,
name: &'static str,
variants: &'static [&'static str],
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_enum<V>(
self,
name: &'static str,
variants: &'static [&'static str],
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an enum
value.
Hint that the Deserialize
type is expecting an enum value with a
particular name and possible variants.
Sourcefn deserialize_struct<V>(
self,
name: &'static str,
fields: &'static [&'static str],
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_struct<V>(
self,
name: &'static str,
fields: &'static [&'static str],
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an Struct
value.
Sourcefn deserialize_variant<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_variant<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an Variant
value.
§Note
Never used(In the 2010 Havok classes)
hkVariant
is a structure with two pointers, but its identity is unknown,
so u128([u64; 2]
) of binary data is used as an argument instead. (If it is 32bit, you would need to cast it to u64([u32;2]
).)
Sourcefn deserialize_cstring<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_cstring<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an CString
value.
Sourcefn deserialize_ulong<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_ulong<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an ULong
(pointer size(u32 or u64)) value.
Sourcefn deserialize_flags<V>(
self,
size: ReadEnumSize,
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_flags<V>(
self,
size: ReadEnumSize,
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize an Flags
value.
Hint that the Deserialize
type is expecting flags value with a
particular name and possible variants.
Provided Methods§
Sourcefn deserialize_key<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_key<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize map key.
- It is mainly called to deserialize the key of a field when implementing
Deserialize
of struct. - The most intended use is to parse XML name strings. The
key
part of<hkparam name="key">
.
The default implementation does nothing.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.