pub struct Tee<T, W> { /* private fields */ }Expand description
tee-like adapter for mirroring data read/written
Implementations§
Source§impl<T, W> Tee<T, W>
impl<T, W> Tee<T, W>
pub fn into_inner(self) -> T
pub fn into_writer(self) -> W
Trait Implementations§
Source§impl<'de, R, W> BitReader<'de> for Tee<R, W>
impl<'de, R, W> BitReader<'de> for Tee<R, W>
type Error = <R as BitReader<'de>>::Error
Source§fn read_bits_into(
&mut self,
dst: &mut BitSlice<u8, Msb0>,
) -> Result<usize, Self::Error>
fn read_bits_into( &mut self, dst: &mut BitSlice<u8, Msb0>, ) -> Result<usize, Self::Error>
Reads
dst.len() bits into given bitslice.
Might be optimized by the implementation.Source§impl<T, W> BitWriter for Tee<T, W>
impl<T, W> BitWriter for Tee<T, W>
Auto Trait Implementations§
impl<T, W> Freeze for Tee<T, W>
impl<T, W> RefUnwindSafe for Tee<T, W>where
T: RefUnwindSafe,
W: RefUnwindSafe,
impl<T, W> Send for Tee<T, W>
impl<T, W> Sync for Tee<T, W>
impl<T, W> Unpin for Tee<T, W>
impl<T, W> UnwindSafe for Tee<T, W>where
T: UnwindSafe,
W: UnwindSafe,
Blanket Implementations§
Source§impl<T> BitPackWrapAsExt for T
impl<T> BitPackWrapAsExt for T
Source§impl<'de, T> BitReaderExt<'de> for Twhere
T: BitReader<'de>,
impl<'de, T> BitReaderExt<'de> for Twhere
T: BitReader<'de>,
Source§fn read_bytes_into(
&mut self,
dst: impl AsMut<[u8]>,
) -> Result<usize, Self::Error>
fn read_bytes_into( &mut self, dst: impl AsMut<[u8]>, ) -> Result<usize, Self::Error>
Reads
dst.len() bytes into given byte sliceSource§fn read_bytes_array<const N: usize>(&mut self) -> Result<[u8; N], Self::Error>
fn read_bytes_array<const N: usize>(&mut self) -> Result<[u8; N], Self::Error>
Read
N bytes and return arraySource§fn unpack<T>(&mut self) -> Result<T, Self::Error>where
T: BitUnpack<'de>,
fn unpack<T>(&mut self) -> Result<T, Self::Error>where
T: BitUnpack<'de>,
Unpack value using its
BitUnpack implementationSource§fn unpack_with<T>(&mut self, args: T::Args) -> Result<T, Self::Error>where
T: BitUnpackWithArgs<'de>,
fn unpack_with<T>(&mut self, args: T::Args) -> Result<T, Self::Error>where
T: BitUnpackWithArgs<'de>,
Unpack value witg args using its
BitUnpackWithArgs implementationSource§fn unpack_iter<T>(
&mut self,
) -> impl Iterator<Item = Result<T, Self::Error>> + '_where
T: BitUnpack<'de>,
fn unpack_iter<T>(
&mut self,
) -> impl Iterator<Item = Result<T, Self::Error>> + '_where
T: BitUnpack<'de>,
Return iterator that unpacks values using
BitUnpack implementationSource§fn unpack_iter_with<'a, T>(
&'a mut self,
args: T::Args,
) -> impl Iterator<Item = Result<T, Self::Error>> + 'a
fn unpack_iter_with<'a, T>( &'a mut self, args: T::Args, ) -> impl Iterator<Item = Result<T, Self::Error>> + 'a
Return iterator that unpacks values with args using
BitUnpackWithArgs implementationSource§fn unpack_as<T, As>(&mut self) -> Result<T, Self::Error>where
As: BitUnpackAs<'de, T> + ?Sized,
fn unpack_as<T, As>(&mut self) -> Result<T, Self::Error>where
As: BitUnpackAs<'de, T> + ?Sized,
Unpack value using an adapter.
See
See
as module-level documentation for more.Source§fn unpack_as_with<T, As>(&mut self, args: As::Args) -> Result<T, Self::Error>where
As: BitUnpackAsWithArgs<'de, T> + ?Sized,
fn unpack_as_with<T, As>(&mut self, args: As::Args) -> Result<T, Self::Error>where
As: BitUnpackAsWithArgs<'de, T> + ?Sized,
Unpack value with args using an adapter.
See
See
as module-level documentation for more.Source§fn unpack_iter_as<T, As>(
&mut self,
) -> impl Iterator<Item = Result<T, Self::Error>> + '_where
As: BitUnpackAs<'de, T> + ?Sized,
fn unpack_iter_as<T, As>(
&mut self,
) -> impl Iterator<Item = Result<T, Self::Error>> + '_where
As: BitUnpackAs<'de, T> + ?Sized,
Returns iterator that unpacks values using an adapter.
See
See
as module-level documentation for more.Source§fn unpack_iter_as_with<'a, T, As>(
&'a mut self,
args: As::Args,
) -> impl Iterator<Item = Result<T, Self::Error>> + 'a
fn unpack_iter_as_with<'a, T, As>( &'a mut self, args: As::Args, ) -> impl Iterator<Item = Result<T, Self::Error>> + 'a
Returns iterator that unpacks values with args using an adapter.
See
See
as module-level documentation for more.fn checkpoint(self) -> Checkpoint<Self>where
Self: Sized,
fn join<R>(self, next: R) -> Join<Self, R>
Source§impl<T> BitWriterExt for Twhere
T: BitWriter,
impl<T> BitWriterExt for Twhere
T: BitWriter,
Source§fn with_repeat_bit(
&mut self,
n: usize,
bit: bool,
) -> Result<&mut Self, Self::Error>
fn with_repeat_bit( &mut self, n: usize, bit: bool, ) -> Result<&mut Self, Self::Error>
Same as
.repeat_bit() but can be used
for chainingSource§fn pack<T>(&mut self, value: T) -> Result<&mut Self, Self::Error>where
T: BitPack,
fn pack<T>(&mut self, value: T) -> Result<&mut Self, Self::Error>where
T: BitPack,
Pack given value using its
BitPack implementationSource§fn pack_with<T>(
&mut self,
value: T,
args: T::Args,
) -> Result<&mut Self, Self::Error>where
T: BitPackWithArgs,
fn pack_with<T>(
&mut self,
value: T,
args: T::Args,
) -> Result<&mut Self, Self::Error>where
T: BitPackWithArgs,
Pack given value with args using its
BitPackWithArgs implementationSource§fn pack_many<T>(
&mut self,
values: impl IntoIterator<Item = T>,
) -> Result<&mut Self, Self::Error>where
T: BitPack,
fn pack_many<T>(
&mut self,
values: impl IntoIterator<Item = T>,
) -> Result<&mut Self, Self::Error>where
T: BitPack,
Pack all values from given iterator using
BitPack implementation
of its item type.Source§fn pack_many_with<T>(
&mut self,
values: impl IntoIterator<Item = T>,
args: T::Args,
) -> Result<&mut Self, Self::Error>
fn pack_many_with<T>( &mut self, values: impl IntoIterator<Item = T>, args: T::Args, ) -> Result<&mut Self, Self::Error>
Pack all values with args from given iterator using
BitPackWithArgs
implementation of its item type.Source§fn pack_as<T, As>(&mut self, value: T) -> Result<&mut Self, Self::Error>
fn pack_as<T, As>(&mut self, value: T) -> Result<&mut Self, Self::Error>
Pack given value using an adapter.
See
See
as module-level documentation for more.Source§fn pack_as_with<T, As>(
&mut self,
value: T,
args: As::Args,
) -> Result<&mut Self, Self::Error>where
As: BitPackAsWithArgs<T> + ?Sized,
fn pack_as_with<T, As>(
&mut self,
value: T,
args: As::Args,
) -> Result<&mut Self, Self::Error>where
As: BitPackAsWithArgs<T> + ?Sized,
Pack given value with args using an adapter.
See
See
as module-level documentation for more.Source§fn pack_many_as<T, As>(
&mut self,
values: impl IntoIterator<Item = T>,
) -> Result<&mut Self, Self::Error>
fn pack_many_as<T, As>( &mut self, values: impl IntoIterator<Item = T>, ) -> Result<&mut Self, Self::Error>
Pack all values from iterator using an adapter.
See
See
as module-level documentation for more.Source§fn pack_many_as_with<T, As>(
&mut self,
values: impl IntoIterator<Item = T>,
args: As::Args,
) -> Result<&mut Self, Self::Error>
fn pack_many_as_with<T, As>( &mut self, values: impl IntoIterator<Item = T>, args: As::Args, ) -> Result<&mut Self, Self::Error>
Pack all values from iterator with args using an adapter.
See
See
as module-level documentation for more.Source§fn counted(self) -> BitCounter<Self>where
Self: Sized,
fn counted(self) -> BitCounter<Self>where
Self: Sized,
Wrap this writer to count written bits by using
.bit_count().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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self to use its UpperHex implementation when
Debug-formatted.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> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self, then passes self.deref() into the pipe function.Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref() only in debug builds, and is erased in release
builds.