Struct io_streams::StreamReader [−][src]
pub struct StreamReader { /* fields omitted */ }
An unbuffered and unlocked input byte stream, implementing Read
,
abstracted over the source of the input.
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 input sources have high per-call
overhead, it is often beneficial to wrap this in a BufReader
.
Implementations
impl StreamReader
[src]
impl StreamReader
[src]pub fn stdin() -> Result<Self>
[src]
pub fn stdin() -> Result<Self>
[src]Read from standard input.
Unlike std::io::stdin
, this stdin
returns a stream which is
unbuffered and unlocked.
Since it is unbuffered, it is often beneficial to wrap the resulting
StreamReader
in a [BufReader
].
This acquires a std::io::StdinLock
(in a non-recursive way) to
prevent accesses to std::io::Stdin
while this is live, and fails if a
StreamReader
or StreamDuplexer
for standard input already exists.
#[must_use]pub fn file<Filelike: IntoUnsafeFile + Read + Write + Seek>(
filelike: Filelike
) -> Self
[src]
#[must_use]pub fn file<Filelike: IntoUnsafeFile + Read + Write + Seek>(
filelike: Filelike
) -> Self
[src]Read from 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]
#[must_use]pub fn tcp_stream<Socketlike: IntoUnsafeSocket>(socketlike: Socketlike) -> Self
[src]Read from 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]
#[must_use]pub fn unix_stream(unix_stream: UnixStream) -> Self
[src]Read from an open Unix-domain socket, taking ownership of it.
#[must_use]pub fn pipe_reader(pipe_reader: PipeReader) -> Self
[src]
#[must_use]pub fn pipe_reader(pipe_reader: PipeReader) -> Self
[src]Read from the reading end of an open pipe, taking ownership of it.
pub fn read_from_command(command: Command) -> Result<Self>
[src]
pub fn read_from_command(command: Command) -> Result<Self>
[src]Spawn the given command and read from its standard output.
#[must_use]pub fn child_stdout(child_stdout: ChildStdout) -> Self
[src]
#[must_use]pub fn child_stdout(child_stdout: ChildStdout) -> Self
[src]Read from a child process’ standard output, taking ownership of it.
#[must_use]pub fn child_stderr(child_stderr: ChildStderr) -> Self
[src]
#[must_use]pub fn child_stderr(child_stderr: ChildStderr) -> Self
[src]Read from a child process’ standard error, taking ownership of it.
Trait Implementations
impl AsRawFd for StreamReader
[src]
impl AsRawFd for StreamReader
[src]impl Debug for StreamReader
[src]
impl Debug for StreamReader
[src]impl Peek for StreamReader
[src]
impl Peek for StreamReader
[src]impl Read for StreamReader
[src]
impl Read for StreamReader
[src]fn read(&mut self, buf: &mut [u8]) -> Result<usize>
[src]
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
[src]Pull some bytes from this source into the specified buffer, returning how many bytes were read. Read more
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
[src]
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
[src]Like read
, except that it reads into a slice of buffers. Read more
fn is_read_vectored(&self) -> bool
[src]
fn is_read_vectored(&self) -> bool
[src]can_vector
)Determines if this Read
er has an efficient read_vectored
implementation. Read more
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
[src]
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
[src]Read all bytes until EOF in this source, placing them into buf
. Read more
fn read_to_string(&mut self, buf: &mut String) -> Result<usize>
[src]
fn read_to_string(&mut self, buf: &mut String) -> Result<usize>
[src]Read all bytes until EOF in this source, appending them to buf
. Read more
fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
[src]
fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
[src]Read the exact number of bytes required to fill buf
. Read more
unsafe fn initializer(&self) -> Initializer
[src]
unsafe fn initializer(&self) -> Initializer
[src]read_initializer
)Determines if this Read
er can work with buffers of uninitialized
memory. Read more
fn by_ref(&mut self) -> &mut Self
1.0.0[src]
fn by_ref(&mut self) -> &mut Self
1.0.0[src]Creates a “by reference” adaptor for this instance of Read
. Read more
impl ReadReady for StreamReader
[src]
impl ReadReady for StreamReader
[src]fn num_ready_bytes(&self) -> Result<u64>
[src]
fn num_ready_bytes(&self) -> Result<u64>
[src]Return the number of bytes which are ready to be read immediately.
impl OwnsRaw for StreamReader
[src]
Auto Trait Implementations
impl !RefUnwindSafe for StreamReader
impl Send for StreamReader
impl Sync for StreamReader
impl Unpin for StreamReader
impl !UnwindSafe for StreamReader
Blanket Implementations
impl<T> AsUnsafeFile for T where
T: AsRawFd + OwnsRaw,
[src]
impl<T> AsUnsafeFile for T where
T: AsRawFd + OwnsRaw,
[src]pub fn as_unsafe_file(&self) -> UnsafeFile
[src]
pub fn as_unsafe_file(&self) -> UnsafeFile
[src]Return the contained unsafe file.
fn as_file_view(&self) -> View<'_, File>
[src]
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]
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]
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]
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]
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]
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
impl<T> AsUnsafeHandle for T where
T: AsRawFd + OwnsRaw,
[src]
impl<T> AsUnsafeHandle for T where
T: AsRawFd + OwnsRaw,
[src]pub fn as_unsafe_handle(&self) -> UnsafeHandle
[src]
pub fn as_unsafe_handle(&self) -> UnsafeHandle
[src]Return the contained unsafe handle.
impl<T> AsUnsafeSocket for T where
T: AsRawFd + OwnsRaw,
[src]
impl<T> AsUnsafeSocket for T where
T: AsRawFd + OwnsRaw,
[src]pub fn as_unsafe_socket(&self) -> UnsafeSocket
[src]
pub fn as_unsafe_socket(&self) -> UnsafeSocket
[src]Return the contained unsafe socket.
fn as_tcp_stream_view(&self) -> View<'_, TcpStream>
[src]
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]
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]
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]
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]
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]
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]
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]
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
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[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]
impl<T> FileIoExt for T where
T: AsUnsafeFile,
[src]pub fn advise(&self, offset: u64, len: u64, advice: Advice) -> Result<(), Error>
[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]
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]
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]
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]
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]
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]
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]
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]
pub fn is_read_vectored_at(&self) -> bool
[src]Determines if this Read
er has an efficient read_vectored_at
implementation.
pub fn read_to_end(&self, buf: &mut Vec<u8, Global>) -> Result<usize, Error>
[src]
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]
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]
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]
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]
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]
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]
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]
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]
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]
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]
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]
pub fn is_write_vectored_at(&self) -> bool
[src]Determines if this Write
r has an efficient write_vectored_at
implementation.
pub fn flush(&self) -> Result<(), Error>
[src]
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]
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]
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]
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]
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]
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
.
impl<T> GetSetFdFlags for T where
T: AsUnsafeFile,
[src]
impl<T> GetSetFdFlags for T where
T: AsUnsafeFile,
[src]pub fn get_fd_flags(&self) -> Result<FdFlags, Error>
[src]
pub fn get_fd_flags(&self) -> Result<FdFlags, Error>
[src]Query the “status” flags for the self
file descriptor.
impl<T> IsReadWrite for T where
T: AsUnsafeHandle,
[src]
impl<T> IsReadWrite for T where
T: AsUnsafeHandle,
[src]impl<T> IsTerminal for T where
T: AsUnsafeHandle,
[src]
impl<T> IsTerminal for T where
T: AsUnsafeHandle,
[src]pub fn is_terminal(&self) -> bool
[src]
pub fn is_terminal(&self) -> bool
[src]Test whether this output stream is attached to a terminal. Read more