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_BOOLhkBool ->vtype:TYPE_BOOL,vsubtype:TYPE_VOID`- There is also a pattern
hkArray<void>. The type information is unknown, but this member always contains theSERIALIZE_IGNOREDflag 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
Deserializeof struct. - The most intended use is to parse XML name strings. The
keypart 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.