Trait destream::en::Encoder[][src]

pub trait Encoder<'en>: Sized {
    type Ok: Stream + Send + Unpin + 'en;
    type Error: Error + Send + Unpin + 'en;
    type EncodeMap: EncodeMap<'en, Ok = Self::Ok, Error = Self::Error>;
    type EncodeSeq: EncodeSeq<'en, Ok = Self::Ok, Error = Self::Error>;
    type EncodeTuple: EncodeTuple<'en, Ok = Self::Ok, Error = Self::Error>;
    fn encode_bool(self, v: bool) -> Result<Self::Ok, Self::Error>;
fn encode_i8(self, v: i8) -> Result<Self::Ok, Self::Error>;
fn encode_i16(self, v: i16) -> Result<Self::Ok, Self::Error>;
fn encode_i32(self, v: i32) -> Result<Self::Ok, Self::Error>;
fn encode_i64(self, v: i64) -> Result<Self::Ok, Self::Error>;
fn encode_u8(self, v: u8) -> Result<Self::Ok, Self::Error>;
fn encode_u16(self, v: u16) -> Result<Self::Ok, Self::Error>;
fn encode_u32(self, v: u32) -> Result<Self::Ok, Self::Error>;
fn encode_u64(self, v: u64) -> Result<Self::Ok, Self::Error>;
fn encode_f32(self, v: f32) -> Result<Self::Ok, Self::Error>;
fn encode_f64(self, v: f64) -> Result<Self::Ok, Self::Error>;
fn encode_str(self, v: &str) -> Result<Self::Ok, Self::Error>;
fn encode_bytes(self, v: &[u8]) -> Result<Self::Ok, Self::Error>;
fn encode_none(self) -> Result<Self::Ok, Self::Error>;
fn encode_some<T: IntoStream<'en> + 'en>(
        self,
        value: T
    ) -> Result<Self::Ok, Self::Error>;
fn encode_unit(self) -> Result<Self::Ok, Self::Error>;
fn encode_map(
        self,
        len: Option<usize>
    ) -> Result<Self::EncodeMap, Self::Error>;
fn encode_map_stream<K: IntoStream<'en> + 'en, V: IntoStream<'en> + 'en, S: Stream<Item = Result<(K, V), Self::Error>> + Send + Unpin + 'en>(
        self,
        map: S
    ) -> Result<Self::Ok, Self::Error>;
fn encode_seq(
        self,
        len: Option<usize>
    ) -> Result<Self::EncodeSeq, Self::Error>;
fn encode_seq_stream<T: IntoStream<'en> + 'en, S: Stream<Item = Result<T, Self::Error>> + Send + Unpin + 'en>(
        self,
        seq: S
    ) -> Result<Self::Ok, Self::Error>;
fn encode_tuple(self, len: usize) -> Result<Self::EncodeTuple, Self::Error>; fn collect_seq<T: IntoStream<'en> + 'en, I: IntoIterator<Item = T>>(
        self,
        iter: I
    ) -> Result<Self::Ok, Self::Error> { ... }
fn collect_map<K, V, I>(self, iter: I) -> Result<Self::Ok, Self::Error>
    where
        K: IntoStream<'en> + 'en,
        V: IntoStream<'en> + 'en,
        I: IntoIterator<Item = (K, V)>
, { ... }
fn collect_str<T: Display + ?Sized>(
        self,
        value: &T
    ) -> Result<Self::Ok, Self::Error> { ... } }

A data format that can encode and stream any data structure supported by destream.

Based on serde::ser::Serializer.

Associated Types

type Ok: Stream + Send + Unpin + 'en[src]

The output type produced by this Encoder.

type Error: Error + Send + Unpin + 'en[src]

The type returned when an encoding error is encountered.

type EncodeMap: EncodeMap<'en, Ok = Self::Ok, Error = Self::Error>[src]

Type returned from encode_map for streaming the content of the map.

type EncodeSeq: EncodeSeq<'en, Ok = Self::Ok, Error = Self::Error>[src]

Type returned from encode_seq for streaming the content of the sequence.

type EncodeTuple: EncodeTuple<'en, Ok = Self::Ok, Error = Self::Error>[src]

Type returned from encode_tuple for streaming the content of the tuple.

Loading content...

Required methods

fn encode_bool(self, v: bool) -> Result<Self::Ok, Self::Error>[src]

Encode a bool.

fn encode_i8(self, v: i8) -> Result<Self::Ok, Self::Error>[src]

Encode an i8.

fn encode_i16(self, v: i16) -> Result<Self::Ok, Self::Error>[src]

Encode an i16.

fn encode_i32(self, v: i32) -> Result<Self::Ok, Self::Error>[src]

Encode an i32.

fn encode_i64(self, v: i64) -> Result<Self::Ok, Self::Error>[src]

Encode an i64.

fn encode_u8(self, v: u8) -> Result<Self::Ok, Self::Error>[src]

Encode a u8.

fn encode_u16(self, v: u16) -> Result<Self::Ok, Self::Error>[src]

Encode a u16.

fn encode_u32(self, v: u32) -> Result<Self::Ok, Self::Error>[src]

Encode a u32.

fn encode_u64(self, v: u64) -> Result<Self::Ok, Self::Error>[src]

Encode a u64.

fn encode_f32(self, v: f32) -> Result<Self::Ok, Self::Error>[src]

Encode an f32 value.

fn encode_f64(self, v: f64) -> Result<Self::Ok, Self::Error>[src]

Encode an f64 value.

fn encode_str(self, v: &str) -> Result<Self::Ok, Self::Error>[src]

Encode a &str.

fn encode_bytes(self, v: &[u8]) -> Result<Self::Ok, Self::Error>[src]

Encode a byte buffer.

fn encode_none(self) -> Result<Self::Ok, Self::Error>[src]

Encode a None value.

fn encode_some<T: IntoStream<'en> + 'en>(
    self,
    value: T
) -> Result<Self::Ok, Self::Error>
[src]

Encode a Some(T) value.

fn encode_unit(self) -> Result<Self::Ok, Self::Error>[src]

Encode a () value.

fn encode_map(self, len: Option<usize>) -> Result<Self::EncodeMap, Self::Error>[src]

Begin encoding a map. This call must be followed by zero or more calls to encode_key and encode_value, then end.

The argument is the number of elements in the map, which may or may not be computable before iterating over the map.

fn encode_map_stream<K: IntoStream<'en> + 'en, V: IntoStream<'en> + 'en, S: Stream<Item = Result<(K, V), Self::Error>> + Send + Unpin + 'en>(
    self,
    map: S
) -> Result<Self::Ok, Self::Error>
[src]

Given a stream of encodable key-value pairs, return a stream encoded as a map.

fn encode_seq(self, len: Option<usize>) -> Result<Self::EncodeSeq, Self::Error>[src]

Begin encoding a variably sized sequence. This call must be followed by zero or more calls to encode_element, then end.

The argument is the number of elements in the sequence, which may or may not be computable before iterating over the sequence.

fn encode_seq_stream<T: IntoStream<'en> + 'en, S: Stream<Item = Result<T, Self::Error>> + Send + Unpin + 'en>(
    self,
    seq: S
) -> Result<Self::Ok, Self::Error>
[src]

Given a stream of encodable values, return a stream encoded as a sequence.

fn encode_tuple(self, len: usize) -> Result<Self::EncodeTuple, Self::Error>[src]

Begin encoding a statically sized sequence whose length will be known at decoding time without looking at the encoded data. This call must be followed by zero or more calls to encode_element, then end.

Loading content...

Provided methods

fn collect_seq<T: IntoStream<'en> + 'en, I: IntoIterator<Item = T>>(
    self,
    iter: I
) -> Result<Self::Ok, Self::Error>
[src]

Collect an iterator as a sequence.

The default implementation encodes each item yielded by the iterator using encode_seq. Implementors should not need to override this method.

fn collect_map<K, V, I>(self, iter: I) -> Result<Self::Ok, Self::Error> where
    K: IntoStream<'en> + 'en,
    V: IntoStream<'en> + 'en,
    I: IntoIterator<Item = (K, V)>, 
[src]

Collect an iterator as a map.

The default implementation encodes each pair yielded by the iterator using encode_map. Implementors should not need to override this method.

fn collect_str<T: Display + ?Sized>(
    self,
    value: &T
) -> Result<Self::Ok, Self::Error>
[src]

Encode a string produced by an implementation of Display.

Loading content...

Implementors

Loading content...