pub trait SequenceEncoder {
type Cx: Context<Error = Self::Error>;
type Error;
type Mode: 'static;
type EncodeNext<'this>: Encoder<Cx = Self::Cx, Error = Self::Error, Mode = Self::Mode>
where Self: 'this;
// Required methods
fn cx(&self) -> Self::Cx;
fn encode_next(&mut self) -> Result<Self::EncodeNext<'_>, Self::Error>;
fn finish_sequence(self) -> Result<(), Self::Error>;
// Provided methods
fn push<T>(&mut self, value: T) -> Result<(), Self::Error>
where T: Encode<Self::Mode> { ... }
fn encode_slice<T>(
&mut self,
slice: impl AsRef<[T]>,
) -> Result<(), Self::Error>
where T: Encode<Self::Mode> { ... }
fn encode_slices<T>(
&mut self,
slices: impl IntoIterator<Item: AsRef<[T]>>,
) -> Result<(), Self::Error>
where T: Encode<Self::Mode> { ... }
}Expand description
Trait governing how to encode a sequence.
Required Associated Types§
Required Methods§
Sourcefn encode_next(&mut self) -> Result<Self::EncodeNext<'_>, Self::Error>
fn encode_next(&mut self) -> Result<Self::EncodeNext<'_>, Self::Error>
Return encoder for the next element.
Sourcefn finish_sequence(self) -> Result<(), Self::Error>
fn finish_sequence(self) -> Result<(), Self::Error>
Finish encoding the sequence.
Provided Methods§
Sourcefn encode_slice<T>(&mut self, slice: impl AsRef<[T]>) -> Result<(), Self::Error>
fn encode_slice<T>(&mut self, slice: impl AsRef<[T]>) -> Result<(), Self::Error>
Encode a slice of values.
This can be called multiple types and has the same effect as calling
push for each value.
Sourcefn encode_slices<T>(
&mut self,
slices: impl IntoIterator<Item: AsRef<[T]>>,
) -> Result<(), Self::Error>
fn encode_slices<T>( &mut self, slices: impl IntoIterator<Item: AsRef<[T]>>, ) -> Result<(), Self::Error>
Encode an iterator of contiguous slices of values.
This can be called multiple types and has the same effect as calling
push for each value.
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.