Serialize

Trait Serialize 

Source
pub trait Serialize {
    // Required method
    fn serialize(&self, state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>;

    // Provided methods
    fn finish(&self, _state: &SerializerState<'_>) -> Result<(), Error> { ... }
    fn is_optional(&self) -> bool { ... }
    fn descriptor(&self) -> &dyn Descriptor { ... }
}
Expand description

A data structure that can be serialized into any data format supported by Deser.

This trait provides two things:

  • descriptor returns a reference to the closest descriptor of this value. The descriptor provides auxiliary information about the value that the serialization system does not expose.
  • serialize serializes the value into a Chunk. For compound values like lists or similar, the piece contains a boxed emitter which can be further processed to walk the embedded compound value.

Required Methods§

Source

fn serialize(&self, state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Serializes this serializable.

Provided Methods§

Source

fn finish(&self, _state: &SerializerState<'_>) -> Result<(), Error>

Invoked after the serialization finished.

This is primarily useful to undo some state change in the serializer state at the end of the processing.

Source

fn is_optional(&self) -> bool

Checks if the current value that would be serialized represents an optional value.

This can be used by an emitter to skip over values that are currently in the optional state. For instance Option<T> returns true here if the value is None and the struct emitter created by the derive feature will skip over these if #[deser(skip_serializing_optionals)] is set on the struct.

Source

fn descriptor(&self) -> &dyn Descriptor

Returns the descriptor of this serializable if it exists.

Implementations on Foreign Types§

Source§

impl Serialize for bool

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl Serialize for char

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl Serialize for f32

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl Serialize for f64

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl Serialize for i8

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl Serialize for i16

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl Serialize for i32

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl Serialize for i64

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl Serialize for isize

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl Serialize for u8

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl Serialize for u16

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl Serialize for u32

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl Serialize for u64

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl Serialize for ()

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

fn is_optional(&self) -> bool

Source§

impl Serialize for usize

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl Serialize for String

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<'a> Serialize for &'a str

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<'a> Serialize for Cow<'a, str>

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<'a, T> Serialize for &'a [T]
where T: Serialize,

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<'a, T: Serialize> Serialize for &'a T

Source§

fn serialize(&self, state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<'a, T: Serialize> Serialize for &'a mut T

Source§

fn serialize(&self, state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<K, V> Serialize for BTreeMap<K, V>
where K: Serialize, V: Serialize,

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<K, V, H> Serialize for HashMap<K, V, H>
where K: Serialize, V: Serialize, H: BuildHasher,

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize, T8: Serialize, T9: Serialize, T10: Serialize, T11: Serialize, T12: Serialize> Serialize for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize, T8: Serialize, T9: Serialize, T10: Serialize, T11: Serialize, T12: Serialize> Serialize for (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize, T8: Serialize, T9: Serialize, T10: Serialize, T11: Serialize, T12: Serialize> Serialize for (T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize, T8: Serialize, T9: Serialize, T10: Serialize, T11: Serialize, T12: Serialize> Serialize for (T4, T5, T6, T7, T8, T9, T10, T11, T12)

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<T5: Serialize, T6: Serialize, T7: Serialize, T8: Serialize, T9: Serialize, T10: Serialize, T11: Serialize, T12: Serialize> Serialize for (T5, T6, T7, T8, T9, T10, T11, T12)

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<T6: Serialize, T7: Serialize, T8: Serialize, T9: Serialize, T10: Serialize, T11: Serialize, T12: Serialize> Serialize for (T6, T7, T8, T9, T10, T11, T12)

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<T7: Serialize, T8: Serialize, T9: Serialize, T10: Serialize, T11: Serialize, T12: Serialize> Serialize for (T7, T8, T9, T10, T11, T12)

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<T8: Serialize, T9: Serialize, T10: Serialize, T11: Serialize, T12: Serialize> Serialize for (T8, T9, T10, T11, T12)

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<T9: Serialize, T10: Serialize, T11: Serialize, T12: Serialize> Serialize for (T9, T10, T11, T12)

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<T10: Serialize, T11: Serialize, T12: Serialize> Serialize for (T10, T11, T12)

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<T11: Serialize, T12: Serialize> Serialize for (T11, T12)

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<T12: Serialize> Serialize for (T12,)

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<T> Serialize for Option<T>
where T: Serialize,

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn is_optional(&self) -> bool

Source§

fn serialize(&self, state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<T> Serialize for BTreeSet<T>
where T: Serialize,

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<T> Serialize for Vec<T>
where T: Serialize,

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<T> Serialize for HashSet<T>
where T: Serialize,

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<T: Serialize> Serialize for Box<T>

Source§

fn serialize(&self, state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Source§

impl<T: Serialize, const N: usize> Serialize for [T; N]

Source§

fn descriptor(&self) -> &dyn Descriptor

Source§

fn serialize(&self, _state: &SerializerState<'_>) -> Result<Chunk<'_>, Error>

Implementors§