pub trait FromBufStream<T: Buf>: Sized {
type Builder;
type Error;
// Required methods
fn builder(hint: &SizeHint) -> Self::Builder;
fn extend(
builder: &mut Self::Builder,
buf: &mut T,
hint: &SizeHint,
) -> Result<(), Self::Error>;
fn build(builder: Self::Builder) -> Result<Self, Self::Error>;
}
Expand description
Conversion from a BufStream
.
By implementing FromBufStream
for a type, you define how it will be
created from a buf stream. This is common for types which describe byte
storage of some kind.
FromBufStream
is rarely called explicitly, and it is instead used through
BufStream
’s collect
method.
Required Associated Types§
Required Methods§
Sourcefn builder(hint: &SizeHint) -> Self::Builder
fn builder(hint: &SizeHint) -> Self::Builder
Create a new, empty, builder. The provided hint
can be used to inform
reserving capacity.
Sourcefn extend(
builder: &mut Self::Builder,
buf: &mut T,
hint: &SizeHint,
) -> Result<(), Self::Error>
fn extend( builder: &mut Self::Builder, buf: &mut T, hint: &SizeHint, ) -> Result<(), Self::Error>
Extend the builder with the Buf
.
This method is called whenever a new Buf
value is obtained from the
buf stream.
The provided size hint represents the state of the stream after
buf
has been yielded. The lower bound represents the minimum amount of
data that will be provided after this call to extend
returns.
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.