Tee

Struct Tee 

Source
pub struct Tee<W1: ErrorType, W2, E> { /* private fields */ }
Expand description

A “T” shaped dispatcher for blocking writes. This contains two writers, both of which writes to the Tee are sent to.

On errors, the writers may have received different amounts of data. Errors are propagated from either writer. Both writers’ error types need to be convertible into a common error.

Implementations§

Source§

impl<W1, W2> Tee<W1, W2, W1::Error>
where W1: Write, W2: Write, W1::Error: From<W2::Error>,

Source

pub fn new(w1: W1, w2: W2) -> Self

Constructs a Tee from the two writers it will sends the its written data to.

This constructor uses W1’s error type as the common error.

Source§

impl<W1, W2, E> Tee<W1, W2, E>
where W1: Write, W2: Write, E: Error + From<W1::Error> + From<W2::Error>,

Source

pub fn new_with_error_type(w1: W1, w2: W2) -> Self

Constructs a Tee from the two writers it will sends the its written data to.

This constructor uses an error type that needs to be indicated explicitly on the output type.

Source§

impl<W1: ErrorType, W2, E> Tee<W1, W2, E>

Source

pub fn into_parts(self) -> (W1, W2)

Trait Implementations§

Source§

impl<W1, W2, E> ErrorType for Tee<W1, W2, E>
where W1: ErrorType, E: Error,

Source§

type Error = E

Error type of all the IO operations on this type.
Source§

impl<W1, W2, E> Write for Tee<W1, W2, E>
where W1: Write, W2: Write, E: Error + From<W1::Error> + From<W2::Error>,

Source§

fn write(&mut self, buf: &[u8]) -> Result<usize, Self::Error>

Write a buffer into this writer, returning how many bytes were written. Read more
Source§

fn flush(&mut self) -> Result<(), Self::Error>

Flush this output stream, blocking until all intermediately buffered contents reach their destination.
Source§

fn write_all(&mut self, buf: &[u8]) -> Result<(), Self::Error>

Write an entire buffer into this writer. Read more
Source§

fn write_fmt( &mut self, fmt: Arguments<'_>, ) -> Result<(), WriteFmtError<Self::Error>>

Write a formatted string into this writer, returning any error encountered. Read more

Auto Trait Implementations§

§

impl<W1, W2, E> Freeze for Tee<W1, W2, E>
where W1: Freeze, W2: Freeze,

§

impl<W1, W2, E> RefUnwindSafe for Tee<W1, W2, E>

§

impl<W1, W2, E> Send for Tee<W1, W2, E>
where W1: Send, W2: Send, E: Send,

§

impl<W1, W2, E> Sync for Tee<W1, W2, E>
where W1: Sync, W2: Sync, E: Sync,

§

impl<W1, W2, E> Unpin for Tee<W1, W2, E>
where W1: Unpin, W2: Unpin, E: Unpin,

§

impl<W1, W2, E> UnwindSafe for Tee<W1, W2, E>
where W1: UnwindSafe, W2: UnwindSafe, E: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.