Struct io_streams::StreamReader [−][src]
pub struct StreamReader { /* fields omitted */ }
Expand description
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 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 AsRawHandleOrSocket for StreamReader
[src]
impl AsRawHandleOrSocket for StreamReader
[src]fn as_raw_handle_or_socket(&self) -> RawHandleOrSocket
[src]
fn as_raw_handle_or_socket(&self) -> RawHandleOrSocket
[src]Like AsRawHandle::as_raw_handle
and AsRawSocket::as_raw_socket
but can return either type. Read more
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> AsUnsafeHandle for T where
T: AsRawHandleOrSocket + OwnsRaw,
[src]
impl<T> AsUnsafeHandle for T where
T: AsRawHandleOrSocket + 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> 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