Struct std::io::StdinLock

pub struct StdinLock<'a> { /* fields omitted */ }

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 Consideration

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.

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(())
}

Trait Implementations

???? This is a nightly-only experimental API. (io_safety #87074)
This is supported on Unix only.

Borrows the file descriptor. Read more

???? This is a nightly-only experimental API. (io_safety #87074)

Borrows the handle. Read more

This is supported on Unix only.

Extracts the raw file descriptor. Read more

Extracts the raw handle, without taking any ownership.

Returns the contents of the internal buffer, filling it with more data from the inner reader if it is empty. Read more

Tells this buffer that amt bytes have been consumed from the buffer, so they should no longer be returned in calls to read. Read more

Read all bytes into buf until the delimiter byte or EOF is reached. Read more

Read all bytes until a newline (the 0xA byte) is reached, and append them to the provided buffer. Read more

???? This is a nightly-only experimental API. (buf_read_has_data_left #86423)

recently added

Check if the underlying Read has any data left to be read. Read more

Notable traits for Split<B>
impl<B: BufRead> Iterator for Split<B>
    type Item = Result<Vec<u8>>;

Returns an iterator over the contents of this reader split on the byte byte. Read more

Notable traits for Lines<B>
impl<B: BufRead> Iterator for Lines<B>
    type Item = Result<String>;

Returns an iterator over the lines of this reader. Read more

Formats the value using the given formatter. Read more

Pull some bytes from this source into the specified buffer, returning how many bytes were read. 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 Reader has an efficient read_vectored implementation. Read more

???? This is a nightly-only experimental API. (read_initializer #42788)

Determines if this Reader can work with buffers of uninitialized memory. Read more

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

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

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

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

Notable traits for Bytes<R>
impl<R: Read> Iterator for Bytes<R>
    type Item = Result<u8>;

Transforms this Read instance to an Iterator over its bytes. Read more

Notable traits for Chain<T, U>
impl<T: Read, U: Read> Read for Chain<T, U>

Creates an adapter which will chain this stream with another. Read more

Notable traits for Take<T>
impl<T: Read> Read for Take<T>

Creates an adapter which will read at most limit bytes from it. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/io/struct.StdinLock.html