StdinLock in std::io - Rust (original) (raw)
Struct StdinLock
1.0.0 · Source
pub struct StdinLock<'a> { /* private fields */ }
Expand description
A locked reference to the Stdin handle.
This handle implements both the Read and BufRead traits, and is constructed via the Stdin::lock method.
§Note: Windows Portability Considerations
When operating in a console, the Windows implementation of this stream does not support non-UTF-8 byte sequences. Attempting to read bytes that are not valid UTF-8 will return an error.
In a process with a detached console, such as one using#![windows_subsystem = "windows"]
, or in a child process spawned from such a process, the contained handle will be null. In such cases, the standard library’s Read
andWrite
will do nothing and silently succeed. All other I/O operations, via the standard library or via raw Windows API calls, will fail.
§Examples
use std::io::{self, BufRead};
fn main() -> io::Result<()> {
let mut buffer = String::new();
let stdin = io::stdin(); // We get `Stdin` here.
{
let mut handle = stdin.lock(); // We get `StdinLock` here.
handle.read_line(&mut buffer)?;
} // `StdinLock` is dropped here.
Ok(())
}
Available on Windows only.
Available on Windows only.
Returns the contents of the internal buffer, filling it with more data, via Read
methods, if empty. Read more
Marks the given amount
of additional bytes from the internal buffer as having been read. Subsequent calls to read
only return bytes that have not been marked as read. Read more
Reads all bytes into buf
until the delimiter byte
or EOF is reached. Read more
Reads all bytes until a newline (the 0xA
byte) is reached, and append them to the provided String
buffer. Read more
🔬This is a nightly-only experimental API. (buf_read_has_data_left
#86423)
Checks if there is any data left to be read
. Read more
Skips all bytes until the delimiter byte
or EOF is reached. Read more
Returns an iterator over the contents of this reader split on the bytebyte
. Read more
Returns an iterator over the lines of this reader. Read more
Returns true
if the descriptor/handle refers to a terminal/tty. Read more
Pull some bytes from this source into the specified buffer, returning how many bytes were read. Read more
🔬This is a nightly-only experimental API. (read_buf
#78485)
Pull some bytes from this source into the specified buffer. Read more
Like read
, except that it reads into a slice of buffers. Read more
🔬This is a nightly-only experimental API. (can_vector
#69941)
Determines if this Read
er has an efficient read_vectored
implementation. Read more
Reads all bytes until EOF in this source, placing them into buf
. Read more
Reads all bytes until EOF in this source, appending them to buf
. Read more
Reads the exact number of bytes required to fill buf
. Read more
🔬This is a nightly-only experimental API. (read_buf
#78485)
Reads the exact number of bytes required to fill cursor
. Read more
Creates a “by reference” adaptor for this instance of Read
. Read more
Transforms this Read
instance to an Iterator over its bytes. Read more
Creates an adapter which will chain this stream with another. Read more
Creates an adapter which will read at most limit
bytes from it. Read more