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>;}Show methods
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_array_bool<T: IntoIterator<Item = bool> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error>
where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en; fn encode_array_i8<T: IntoIterator<Item = i8> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error>
where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en; fn encode_array_i16<T: IntoIterator<Item = i16> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error>
where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en; fn encode_array_i32<T: IntoIterator<Item = i32> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error>
where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en; fn encode_array_i64<T: IntoIterator<Item = i64> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error>
where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en; fn encode_array_u8<T: IntoIterator<Item = u8> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error>
where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en; fn encode_array_u16<T: IntoIterator<Item = u16> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error>
where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en; fn encode_array_u32<T: IntoIterator<Item = u32> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error>
where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en; fn encode_array_u64<T: IntoIterator<Item = u64> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error>
where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en; fn encode_array_f32<T: IntoIterator<Item = f32> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error>
where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en; fn encode_array_f64<T: IntoIterator<Item = f64> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error>
where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en; 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 = (K, V)> + 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 = T> + 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> { ... }
Expand description
A data format that can encode and stream any data structure supported by destream.
Based on serde::ser::Serializer
.
Associated Types
Type returned from encode_map
for streaming the content of the map.
Type returned from encode_seq
for streaming the content of the sequence.
type EncodeTuple: EncodeTuple<'en, Ok = Self::Ok, Error = Self::Error>
type EncodeTuple: EncodeTuple<'en, Ok = Self::Ok, Error = Self::Error>
Type returned from encode_tuple
for streaming the content of the tuple.
Required methods
fn encode_array_bool<T: IntoIterator<Item = bool> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
fn encode_array_bool<T: IntoIterator<Item = bool> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
Encode an array of bool
s.
fn encode_array_i8<T: IntoIterator<Item = i8> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
fn encode_array_i8<T: IntoIterator<Item = i8> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
Encode an array of i8
s.
fn encode_array_i16<T: IntoIterator<Item = i16> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
fn encode_array_i16<T: IntoIterator<Item = i16> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
Encode an array of i16
s.
fn encode_array_i32<T: IntoIterator<Item = i32> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
fn encode_array_i32<T: IntoIterator<Item = i32> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
Encode an array of i32
s.
fn encode_array_i64<T: IntoIterator<Item = i64> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
fn encode_array_i64<T: IntoIterator<Item = i64> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
Encode an array of i64
s.
fn encode_array_u8<T: IntoIterator<Item = u8> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
fn encode_array_u8<T: IntoIterator<Item = u8> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
Encode an array of u8
s.
fn encode_array_u16<T: IntoIterator<Item = u16> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
fn encode_array_u16<T: IntoIterator<Item = u16> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
Encode an array of u16
s.
fn encode_array_u32<T: IntoIterator<Item = u32> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
fn encode_array_u32<T: IntoIterator<Item = u32> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
Encode an array of u32
s.
fn encode_array_u64<T: IntoIterator<Item = u64> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
fn encode_array_u64<T: IntoIterator<Item = u64> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
Encode an array of u64
s.
fn encode_array_f32<T: IntoIterator<Item = f32> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
fn encode_array_f32<T: IntoIterator<Item = f32> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
Encode an array of f32
s.
fn encode_array_f64<T: IntoIterator<Item = f64> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
fn encode_array_f64<T: IntoIterator<Item = f64> + Send + Unpin + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
chunks: S
) -> Result<Self::Ok, Self::Error> where
<T as IntoIterator>::IntoIter: Send + Unpin + 'en,
Encode an array of f64
s.
fn encode_some<T: IntoStream<'en> + 'en>(
self,
value: T
) -> Result<Self::Ok, Self::Error>
fn encode_some<T: IntoStream<'en> + 'en>(
self,
value: T
) -> Result<Self::Ok, Self::Error>
Encode a Some(T)
value.
fn encode_unit(self) -> Result<Self::Ok, Self::Error>
fn encode_unit(self) -> Result<Self::Ok, Self::Error>
Encode a ()
value.
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 = (K, V)> + Send + Unpin + 'en>(
self,
map: S
) -> Result<Self::Ok, Self::Error>
fn encode_map_stream<K: IntoStream<'en> + 'en, V: IntoStream<'en> + 'en, S: Stream<Item = (K, V)> + Send + Unpin + 'en>(
self,
map: S
) -> Result<Self::Ok, Self::Error>
Given a stream of encodable key-value pairs, return a stream encoded as a map.
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 = T> + Send + Unpin + 'en>(
self,
seq: S
) -> Result<Self::Ok, Self::Error>
fn encode_seq_stream<T: IntoStream<'en> + 'en, S: Stream<Item = T> + Send + Unpin + 'en>(
self,
seq: S
) -> Result<Self::Ok, Self::Error>
Given a stream of encodable values, return a stream encoded as a sequence.
fn encode_tuple(self, len: usize) -> Result<Self::EncodeTuple, Self::Error>
fn encode_tuple(self, len: usize) -> Result<Self::EncodeTuple, Self::Error>
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
.
Provided methods
fn collect_seq<T: IntoStream<'en> + 'en, I: IntoIterator<Item = T>>(
self,
iter: I
) -> Result<Self::Ok, Self::Error>
fn collect_seq<T: IntoStream<'en> + 'en, I: IntoIterator<Item = T>>(
self,
iter: I
) -> Result<Self::Ok, Self::Error>
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)>,
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)>,
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.