Struct io_streams::StreamWriter[][src]

pub struct StreamWriter { /* fields omitted */ }
Expand description

An unbuffered and unlocked output byte stream, implementing Write, 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.

Since it is unbuffered, it is often beneficial to wrap the resulting StreamWriter in a BufWriter or LineWriter.

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(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(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]

fn as_raw_fd(&self) -> RawFd[src]

Extracts the raw file descriptor. Read more

impl Debug for StreamWriter[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl Write for StreamWriter[src]

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

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

fn flush(&mut self) -> Result<()>[src]

Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more

fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize>[src]

Like write, except that it writes from a slice of buffers. Read more

fn is_write_vectored(&self) -> bool[src]

🔬 This is a nightly-only experimental API. (can_vector)

Determines if this Writer has an efficient write_vectored implementation. Read more

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

Attempts to write an entire buffer into this writer. Read more

fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>[src]

🔬 This is a nightly-only experimental API. (write_all_vectored)

Attempts to write multiple buffers into this writer. Read more

fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<()>[src]

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

fn by_ref(&mut self) -> &mut Self1.0.0[src]

Creates a “by reference” adaptor for this instance of Write. Read more

impl OwnsRaw for StreamWriter[src]

Auto Trait Implementations

Blanket Implementations

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

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

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

pub fn as_unsafe_file(&self) -> UnsafeFile[src]

Return the contained unsafe file.

fn as_file_view(&self) -> View<'_, File>[src]

Utility for returning a value which dereferences to a &File or &mut File. Read more

unsafe fn as_unscoped_file_view(&self) -> View<'static, File>[src]

Like as_file_view, but returns a value which is not explicitly tied to the lifetime of self. Read more

fn as_pipe_reader_view(&self) -> View<'_, PipeReader>[src]

Utility for returning a value which dereferences to a &PipeReader or &mut PipeReader. Read more

unsafe fn as_unscoped_pipe_reader_view(&self) -> View<'static, PipeReader>[src]

Like as_pipe_reader_view, but returns a value which is not explicitly tied to the lifetime of self. Read more

fn as_pipe_writer_view(&self) -> View<'_, PipeWriter>[src]

Utility for returning a value which dereferences to a &PipeWriter or &mut PipeWriter. Read more

unsafe fn as_unscoped_pipe_writer_view(&self) -> View<'static, PipeWriter>[src]

Like as_pipe_writer_view, but returns a value which is not explicitly tied to the lifetime of self. Read more

fn eq_file<Filelike>(&self, other: &Filelike) -> bool where
    Filelike: AsUnsafeFile
[src]

Test whether self.as_unsafe_file().as_unsafe_handle() is equal to other.as_unsafe_file().as_unsafe_handle(). Read more

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

pub fn as_unsafe_handle(&self) -> UnsafeHandle[src]

Return the contained unsafe handle.

fn eq_handle<Handlelike>(&self, other: &Handlelike) -> bool where
    Handlelike: AsUnsafeHandle
[src]

Test whether self.as_unsafe_handle() is equal to other.as_unsafe_handle(). Read more

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

pub fn as_unsafe_socket(&self) -> UnsafeSocket[src]

Return the contained unsafe socket.

fn as_tcp_stream_view(&self) -> View<'_, TcpStream>[src]

Utility for returning a value which dereferences to a &TcpStream or &mut TcpStream. Read more

unsafe fn as_unscoped_tcp_stream_view(&self) -> View<'static, TcpStream>[src]

Like as_tcp_stream_view, but returns a value which is not explicitly tied to the lifetime of self. Read more

fn as_tcp_listener_view(&self) -> View<'_, TcpListener>[src]

Utility for returning a value which dereferences to a &TcpListener or &mut TcpListener. Read more

unsafe fn as_unscoped_tcp_listener_view(&self) -> View<'static, TcpListener>[src]

Like as_tcp_listener_view, but returns a value which is not explicitly tied to the lifetime of self. Read more

fn as_udp_socket_view(&self) -> View<'_, UdpSocket>[src]

Utility for returning a value which dereferences to a &UdpSocket or &mut UdpSocket. Read more

unsafe fn as_unscoped_udp_socket_view(&self) -> View<'static, UdpSocket>[src]

Like as_udp_socket_view, but returns a value which is not explicitly tied to the lifetime of self. Read more

fn as_unix_stream_view(&self) -> View<'_, UnixStream>[src]

Utility for returning a value which dereferences to a &UnixStream or &mut UnixStream. Read more

unsafe fn as_unscoped_unix_stream_view(&self) -> View<'static, UnixStream>[src]

Like as_unix_stream_view, but returns a value which is not explicitly tied to the lifetime of self. Read more

fn eq_socket<Socketlike>(&self, other: &Socketlike) -> bool where
    Socketlike: AsUnsafeSocket
[src]

Test whether self.as_unsafe_socket().as_unsafe_handle() is equal to other.as_unsafe_socket().as_unsafe_handle(). Read more

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

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

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

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

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

pub fn advise(&self, offset: u64, len: u64, advice: Advice) -> Result<(), Error>[src]

Announce the expected access pattern of the data at the given offset.

pub fn allocate(&self, offset: u64, len: u64) -> Result<(), Error>[src]

Allocate space in the file, increasing the file size as needed, and ensuring that there are no holes under the given range. Read more

pub fn read(&self, buf: &mut [u8]) -> Result<usize, Error>[src]

Pull some bytes from this source into the specified buffer, returning how many bytes were read. Read more

pub fn read_exact(&self, buf: &mut [u8]) -> Result<(), Error>[src]

Read the exact number of bytes required to fill buf. Read more

pub fn read_at(&self, buf: &mut [u8], offset: u64) -> Result<usize, Error>[src]

Reads a number of bytes starting from a given offset. Read more

pub fn read_exact_at(&self, buf: &mut [u8], offset: u64) -> Result<(), Error>[src]

Reads the exact number of byte required to fill buf from the given offset. Read more

pub fn read_vectored(&self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>[src]

Like read, except that it reads into a slice of buffers. Read more

pub fn read_vectored_at(
    &self,
    bufs: &mut [IoSliceMut<'_>],
    offset: u64
) -> Result<usize, Error>
[src]

Is to read_vectored what read_at is to read.

pub fn is_read_vectored_at(&self) -> bool[src]

Determines if this Reader has an efficient read_vectored_at implementation.

pub fn read_to_end(&self, buf: &mut Vec<u8, Global>) -> Result<usize, Error>[src]

Read all bytes until EOF in this source, placing them into buf. Read more

pub fn read_to_end_at(
    &self,
    buf: &mut Vec<u8, Global>,
    offset: u64
) -> Result<usize, Error>
[src]

Read all bytes, starting at offset, until EOF in this source, placing them into buf. Read more

pub fn read_to_string(&self, buf: &mut String) -> Result<usize, Error>[src]

Read all bytes until EOF in this source, appending them to buf. Read more

pub fn read_to_string_at(
    &self,
    buf: &mut String,
    offset: u64
) -> Result<usize, Error>
[src]

Read all bytes, starting at offset, until EOF in this source, appending them to buf. Read more

pub fn peek(&self, buf: &mut [u8]) -> Result<usize, Error>[src]

Read bytes from the current position without advancing the current position. Read more

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

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

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

Attempts to write an entire buffer into this writer. Read more

pub fn write_at(&self, buf: &[u8], offset: u64) -> Result<usize, Error>[src]

Writes a number of bytes starting from a given offset. Read more

pub fn write_all_at(&self, buf: &[u8], offset: u64) -> Result<(), Error>[src]

Attempts to write an entire buffer starting from a given offset. Read more

pub fn write_vectored(&self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>[src]

Like write, except that it writes from a slice of buffers. Read more

pub fn write_vectored_at(
    &self,
    bufs: &[IoSlice<'_>],
    offset: u64
) -> Result<usize, Error>
[src]

Is to write_vectored what write_at is to write.

pub fn is_write_vectored_at(&self) -> bool[src]

Determines if this Writer has an efficient write_vectored_at implementation.

pub fn flush(&self) -> Result<(), Error>[src]

Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more

pub fn write_fmt(&self, fmt: Arguments<'_>) -> Result<(), Error>[src]

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

pub fn seek(&self, pos: SeekFrom) -> Result<u64, Error>[src]

Seek to an offset, in bytes, in a stream. Read more

pub fn stream_position(&self) -> Result<u64, Error>[src]

Returns the current seek position from the start of the stream. Read more

fn read_exact_vectored(&self, bufs: &mut [IoSliceMut<'_>]) -> Result<(), Error>[src]

Is to read_vectored what read_exact is to read.

fn read_exact_vectored_at(
    &self,
    bufs: &mut [IoSliceMut<'_>],
    offset: u64
) -> Result<(), Error>
[src]

Is to read_exact_vectored what read_exact_at is to read_exact.

fn write_all_vectored(&self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>[src]

Is to write_vectored what write_all is to write.

fn write_all_vectored_at(
    &self,
    bufs: &mut [IoSlice<'_>],
    offset: u64
) -> Result<(), Error>
[src]

Is to write_all_vectored what write_all_at is to write_all.

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

pub fn from(t: T) -> T[src]

Performs the conversion.

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

pub fn get_fd_flags(&self) -> Result<FdFlags, Error>[src]

Query the “status” flags for the self file descriptor.

pub fn set_fd_flags(&mut self, fd_flags: FdFlags) -> Result<(), Error>[src]

Set the “status” flags for the self file descriptor. On some platforms, this may close the file descriptor and produce a new one. Read more

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

pub fn into(self) -> U[src]

Performs the conversion.

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

pub fn is_read_write(&self) -> Result<(bool, bool), Error>[src]

Test whether the handle is readable and/or writable.

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

pub fn is_terminal(&self) -> bool[src]

Test whether this output stream is attached to a terminal. Read more

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.

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

Performs the conversion.

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.

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

Performs the conversion.