Struct io_streams::StreamReader
source · pub struct StreamReader { /* private fields */ }
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§
source§impl StreamReader
impl StreamReader
sourcepub fn stdin() -> Result<Self>
pub fn stdin() -> Result<Self>
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.
sourcepub fn file<Filelike: IntoFilelike + Read + Write + Seek>(
filelike: Filelike
) -> Self
pub fn file<Filelike: IntoFilelike + Read + Write + Seek>( filelike: Filelike ) -> Self
Read from an open file, taking ownership of it.
This method can be passed a std::fs::File
or similar File
types.
sourcepub fn tcp_stream<Socketlike: IntoSocketlike>(socketlike: Socketlike) -> Self
pub fn tcp_stream<Socketlike: IntoSocketlike>(socketlike: Socketlike) -> Self
Read from an open TCP stream, taking ownership of it.
This method can be passed a std::net::TcpStream
or similar
TcpStream
types.
sourcepub fn pipe_reader(pipe_reader: PipeReader) -> Self
pub fn pipe_reader(pipe_reader: PipeReader) -> Self
Read from the reading end of an open pipe, taking ownership of it.
sourcepub fn read_from_command(command: Command) -> Result<Self>
pub fn read_from_command(command: Command) -> Result<Self>
Spawn the given command and read from its standard output.
sourcepub fn child_stdout(child_stdout: ChildStdout) -> Self
pub fn child_stdout(child_stdout: ChildStdout) -> Self
Read from a child process’ standard output, taking ownership of it.
sourcepub fn child_stderr(child_stderr: ChildStderr) -> Self
pub fn child_stderr(child_stderr: ChildStderr) -> Self
Read from a child process’ standard error, taking ownership of it.
Trait Implementations§
source§impl AsHandleOrSocket for StreamReader
impl AsHandleOrSocket for StreamReader
source§fn as_handle_or_socket(&self) -> BorrowedHandleOrSocket<'_>
fn as_handle_or_socket(&self) -> BorrowedHandleOrSocket<'_>
AsHandle::as_handle
and AsSocket::as_socket
but can return either type.source§impl AsRawHandleOrSocket for StreamReader
impl AsRawHandleOrSocket for StreamReader
source§fn as_raw_handle_or_socket(&self) -> RawHandleOrSocket
fn as_raw_handle_or_socket(&self) -> RawHandleOrSocket
AsRawHandle::as_raw_handle
and AsRawSocket::as_raw_socket
but can return either type.source§impl Debug for StreamReader
impl Debug for StreamReader
source§impl Peek for StreamReader
impl Peek for StreamReader
source§impl Read for StreamReader
impl Read for StreamReader
source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
read
, except that it reads into a slice of buffers. Read moresource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
can_vector
)source§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
buf
. Read moresource§fn read_to_string(&mut self, buf: &mut String) -> Result<usize>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize>
buf
. Read moresource§fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
buf
. Read moresource§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
read_buf
)source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
read_buf
)cursor
. Read more1.0.0 · source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Read
. Read moresource§impl ReadReady for StreamReader
impl ReadReady for StreamReader
impl Send for StreamReader
impl Sync for StreamReader
Auto Trait Implementations§
impl Freeze for StreamReader
impl !RefUnwindSafe for StreamReader
impl Unpin for StreamReader
impl !UnwindSafe for StreamReader
Blanket Implementations§
source§impl<T> AsGrip for Twhere
T: AsHandleOrSocket,
impl<T> AsGrip for Twhere
T: AsHandleOrSocket,
source§fn as_grip(&self) -> BorrowedHandleOrSocket<'_>
fn as_grip(&self) -> BorrowedHandleOrSocket<'_>
source§impl<T> AsRawGrip for Twhere
T: AsRawHandleOrSocket,
impl<T> AsRawGrip for Twhere
T: AsRawHandleOrSocket,
source§fn as_raw_grip(&self) -> RawHandleOrSocket
fn as_raw_grip(&self) -> RawHandleOrSocket
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
source§fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
self
file descriptor.source§fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike + FromFilelike,
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike + FromFilelike,
source§fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
self
file descriptor. Read more