[][src]Struct ordcode::Serializer

pub struct Serializer<W, P> { /* fields omitted */ }

serde serializer for binary data format which may preserve lexicographic ordering of values

The data format is customizable: you can choose lexicographic ordering for encoding of primitive types, endianness, encoding of lengths and enum discriminants; please see SerializerParams trait. This crate provides params::AscendingOrder, which is a default parameter set for Serializer which has the property to preserve lexicographic ordering of serialized values. To obtain the descending lexicographic ordering, the resulting byte buffer should be bitwise inverted, e.g. with primitives::invert_buffer()).

Serializer requires access to a double-ended data buffer, which should implement WriteBytes and TailWriteBytes traits. This crate provides a DeWriteBuffer type, which is a wrapper around a user-provided mutable slice to be used as a write buffer.

Serializer does not allocate anything: double-ended buffer should be big enough to contain serialized data. To know required buffer size in advance, please use calc_size with the same SerializerParams. Size calculation is cheap, for fixed-size structures it folds into compile-time constant.

Implementations

impl<W, P> Serializer<W, P> where
    W: TailWriteBytes,
    P: SerializerParams
[src]

pub fn new(writer: W, params: P) -> Self[src]

pub fn into_writer(self) -> W[src]

Trait Implementations

impl<W> FormatVersion<AscendingOrder> for Serializer<W, AscendingOrder>[src]

impl<W> FormatVersion<NativeBinary> for Serializer<W, NativeBinary>[src]

impl<W> FormatVersion<PortableBinary> for Serializer<W, PortableBinary>[src]

impl<'a, W, P> Serializer for &'a mut Serializer<W, P> where
    W: TailWriteBytes,
    P: SerializerParams
[src]

type Ok = ()

The output type produced by this Serializer during successful serialization. Most serializers that produce text or binary output should set Ok = () and serialize into an io::Write or buffer contained within the Serializer instance. Serializers that build in-memory data structures may be simplified by using Ok to propagate the data structure around. Read more

type Error = Error

The error type when some error occurs during serialization.

type SerializeSeq = SerializeCompoundSeq<'a, W, P>

Type returned from serialize_seq for serializing the content of the sequence. Read more

type SerializeTuple = SerializeCompound<'a, W, P>

Type returned from serialize_tuple for serializing the content of the tuple. Read more

type SerializeTupleStruct = SerializeCompound<'a, W, P>

Type returned from serialize_tuple_struct for serializing the content of the tuple struct. Read more

type SerializeTupleVariant = SerializeCompound<'a, W, P>

Type returned from serialize_tuple_variant for serializing the content of the tuple variant. Read more

type SerializeMap = SerializeCompoundSeq<'a, W, P>

Type returned from serialize_map for serializing the content of the map. Read more

type SerializeStruct = SerializeCompound<'a, W, P>

Type returned from serialize_struct for serializing the content of the struct. Read more

type SerializeStructVariant = SerializeCompound<'a, W, P>

Type returned from serialize_struct_variant for serializing the content of the struct variant. Read more

Auto Trait Implementations

impl<W, P> RefUnwindSafe for Serializer<W, P> where
    P: RefUnwindSafe,
    W: RefUnwindSafe
[src]

impl<W, P> Send for Serializer<W, P> where
    P: Send,
    W: Send
[src]

impl<W, P> Sync for Serializer<W, P> where
    P: Sync,
    W: Sync
[src]

impl<W, P> Unpin for Serializer<W, P> where
    P: Unpin,
    W: Unpin
[src]

impl<W, P> UnwindSafe for Serializer<W, P> where
    P: UnwindSafe,
    W: UnwindSafe
[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.