Struct io_streams::StreamWriter[][src]

pub struct StreamWriter { /* fields omitted */ }

An unbuffered and unlocked output byte stream, abstracted over the destination of the output.

It primarily consists of a single file handle, and also contains any resources needed to safely hold the file handle live.

Since it is unbuffered, and since many destinations have high per-call overhead, it is often beneficial to wrap this in a BufWriter or LineWriter.

Implementations

impl StreamWriter[src]

pub fn stdout() -> Result<Self>[src]

Write to standard output.

Unlike std::io::stdout, this stdout returns a stream which is unbuffered and unlocked.

This acquires a std::io::StdoutLock (in a non-recursive way) to prevent accesses to std::io::Stdout while this is live, and fails if a StreamWriter or StreamDuplexer for standard output already exists.

#[must_use]pub fn file<Filelike: IntoUnsafeFile + Read + Write + Seek>(
    filelike: Filelike
) -> Self
[src]

Write to an open file, taking ownership of it.

This method can be passed a std::fs::File or similar File types.

#[must_use]pub fn tcp_stream<Socketlike: IntoUnsafeSocket>(socketlike: Socketlike) -> Self[src]

Write to an open TCP stream, taking ownership of it.

This method can be passed a std::net::TcpStream or similar TcpStream types.

#[must_use]pub fn unix_stream(unix_stream: UnixStream) -> Self[src]

Write to an open Unix-domain stream, taking ownership of it.

#[must_use]pub fn pipe_writer(pipe_writer: PipeWriter) -> Self[src]

Write to the writing end of an open pipe, taking ownership of it.

pub fn write_to_command(mut command: Command) -> Result<Self>[src]

Spawn the given command and write to its standard input. Its standard output is redirected to Stdio::null().

#[must_use]pub fn child_stdin(child_stdin: ChildStdin) -> Self[src]

Write to the given child standard input, taking ownership of it.

pub fn piped_thread(mut boxed_write: Box<dyn Write + Send>) -> Result<Self>[src]

Write to a boxed Write implementation, taking ownership of it. This works by creating a new thread to read the data through a pipe and write it.

Writes to the pipe aren't synchronous with writes to the boxed Write implementation. To ensure data is flushed all the way through the thread and into the boxed Write implementation, call flush(), which synchronizes with the thread to ensure that is has completed writing all pending output.

pub fn null() -> Result<Self>[src]

Write to the null device, which ignores all data.

Trait Implementations

impl AsRawFd for StreamWriter[src]

impl Debug for StreamWriter[src]

impl Write for StreamWriter[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> AsUnsafeFile for T where
    T: AsRawFd
[src]

impl<T> AsUnsafeHandle for T where
    T: AsRawFd
[src]

impl<T> AsUnsafeSocket for T where
    T: AsRawFd
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> FileIoExt for T where
    T: AsRawFd
[src]

impl<T> From<T> for T[src]

impl<T> GetSetFdFlags for T where
    T: AsUnsafeFile
[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> IsReadWrite for T where
    T: AsRawFd
[src]

impl<T> IsTerminal for T where
    T: AsRawFd
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.