Struct FixedLengthReader
pub struct FixedLengthReader<'a, R>where
R: Read,{ /* private fields */ }
Expand description
Essentially std::io::Take
but a bit simpler and with a method to walk the underlying stream
forward to ensure we always consume exactly the fixed length specified.
This is not exported to bindings users as manual TLV building is not currently supported in bindings
Implementations§
§impl<'a, R> FixedLengthReader<'a, R>where
R: Read,
impl<'a, R> FixedLengthReader<'a, R>where
R: Read,
pub fn new(read: &'a mut R, total_bytes: u64) -> FixedLengthReader<'a, R>
pub fn new(read: &'a mut R, total_bytes: u64) -> FixedLengthReader<'a, R>
Returns a new FixedLengthReader
.
pub fn bytes_remain(&mut self) -> bool
pub fn bytes_remain(&mut self) -> bool
Returns whether some bytes are remaining or not.
pub fn eat_remaining(&mut self) -> Result<(), DecodeError>
pub fn eat_remaining(&mut self) -> Result<(), DecodeError>
Consumes the remaining bytes.
Trait Implementations§
Auto Trait Implementations§
impl<'a, R> Freeze for FixedLengthReader<'a, R>
impl<'a, R> Send for FixedLengthReader<'a, R>where
R: Send,
impl<'a, R> Sync for FixedLengthReader<'a, R>where
R: Sync,
impl<'a, R> RefUnwindSafe for FixedLengthReader<'a, R>where
R: RefUnwindSafe,
impl<'a, R> Unpin for FixedLengthReader<'a, R>
impl<'a, R> !UnwindSafe for FixedLengthReader<'a, R>
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request