Rollup merge of #30546 - tshepang:add-links, r=steveklabnik
This commit is contained in:
commit
9579a08e55
@ -133,14 +133,17 @@ fn handle_ebadf<T>(r: io::Result<T>, default: T) -> io::Result<T> {
|
||||
/// A handle to the standard input stream of a process.
|
||||
///
|
||||
/// Each handle is a shared reference to a global buffer of input data to this
|
||||
/// process. A handle can be `lock`'d to gain full access to `BufRead` methods
|
||||
/// process. A handle can be `lock`'d to gain full access to [`BufRead`] methods
|
||||
/// (e.g. `.lines()`). Writes to this handle are otherwise locked with respect
|
||||
/// to other writes.
|
||||
///
|
||||
/// This handle implements the `Read` trait, but beware that concurrent reads
|
||||
/// of `Stdin` must be executed with care.
|
||||
///
|
||||
/// Created by the function `io::stdin()`.
|
||||
/// Created by the [`io::stdin`] method.
|
||||
///
|
||||
/// [`io::stdin`]: fn.stdin.html
|
||||
/// [`BufRead`]: trait.BufRead.html
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub struct Stdin {
|
||||
inner: Arc<Mutex<BufReader<Maybe<StdinRaw>>>>,
|
||||
@ -148,8 +151,12 @@ pub struct Stdin {
|
||||
|
||||
/// A locked reference to the `Stdin` handle.
|
||||
///
|
||||
/// This handle implements both the `Read` and `BufRead` traits and is
|
||||
/// constructed via the `lock` method on `Stdin`.
|
||||
/// This handle implements both the [`Read`] and [`BufRead`] traits, and
|
||||
/// is constructed via the [`Stdin::lock`] method.
|
||||
///
|
||||
/// [`Read`]: trait.Read.html
|
||||
/// [`BufRead`]: trait.BufRead.html
|
||||
/// [`Stdin::lock`]: struct.Stdin.html#method.lock
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub struct StdinLock<'a> {
|
||||
inner: MutexGuard<'a, BufReader<Maybe<StdinRaw>>>,
|
||||
@ -159,7 +166,7 @@ pub struct StdinLock<'a> {
|
||||
///
|
||||
/// Each handle returned is a reference to a shared global buffer whose access
|
||||
/// is synchronized via a mutex. If you need more explicit control over
|
||||
/// locking, see the [lock() method][lock].
|
||||
/// locking, see the [`lock() method`][lock].
|
||||
///
|
||||
/// [lock]: struct.Stdin.html#method.lock
|
||||
///
|
||||
@ -221,8 +228,11 @@ impl Stdin {
|
||||
/// guard.
|
||||
///
|
||||
/// The lock is released when the returned lock goes out of scope. The
|
||||
/// returned guard also implements the `Read` and `BufRead` traits for
|
||||
/// returned guard also implements the [`Read`] and [`BufRead`] traits for
|
||||
/// accessing the underlying data.
|
||||
///
|
||||
/// [Read]: trait.Read.html
|
||||
/// [BufRead]: trait.BufRead.html
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub fn lock(&self) -> StdinLock {
|
||||
StdinLock { inner: self.inner.lock().unwrap_or_else(|e| e.into_inner()) }
|
||||
@ -231,7 +241,9 @@ impl Stdin {
|
||||
/// Locks this handle and reads a line of input into the specified buffer.
|
||||
///
|
||||
/// For detailed semantics of this method, see the documentation on
|
||||
/// `BufRead::read_line`.
|
||||
/// [`BufRead::read_line`].
|
||||
///
|
||||
/// [`BufRead::read_line`]: trait.BufRead.html#method.read_line
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
@ -314,7 +326,9 @@ const OUT_MAX: usize = ::usize::MAX;
|
||||
/// output stream. Access is also synchronized via a lock and explicit control
|
||||
/// over locking is available via the `lock` method.
|
||||
///
|
||||
/// Created by the function `io::stdout()`.
|
||||
/// Created by the [`io::stdout`] method.
|
||||
///
|
||||
/// [`io::stdout`]: fn.stdout.html
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub struct Stdout {
|
||||
// FIXME: this should be LineWriter or BufWriter depending on the state of
|
||||
@ -325,8 +339,11 @@ pub struct Stdout {
|
||||
|
||||
/// A locked reference to the `Stdout` handle.
|
||||
///
|
||||
/// This handle implements the `Write` trait and is constructed via the `lock`
|
||||
/// method on `Stdout`.
|
||||
/// This handle implements the [`Write`] trait, and is constructed via
|
||||
/// the [`Stdout::lock`] method.
|
||||
///
|
||||
/// [`Write`]: trait.Write.html
|
||||
/// [`Stdout::lock`]: struct.Stdout.html#method.lock
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub struct StdoutLock<'a> {
|
||||
inner: ReentrantMutexGuard<'a, RefCell<LineWriter<Maybe<StdoutRaw>>>>,
|
||||
@ -336,9 +353,9 @@ pub struct StdoutLock<'a> {
|
||||
///
|
||||
/// Each handle returned is a reference to a shared global buffer whose access
|
||||
/// is synchronized via a mutex. If you need more explicit control over
|
||||
/// locking, see the [lock() method][lock].
|
||||
/// locking, see the [Stdout::lock] method.
|
||||
///
|
||||
/// [lock]: struct.Stdout.html#method.lock
|
||||
/// [Stdout::lock]: struct.Stdout.html#method.lock
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
@ -424,7 +441,9 @@ impl<'a> Write for StdoutLock<'a> {
|
||||
|
||||
/// A handle to the standard error stream of a process.
|
||||
///
|
||||
/// For more information, see `stderr`
|
||||
/// For more information, see the [`io::stderr`] method.
|
||||
///
|
||||
/// [`io::stderr`]: fn.stderr.html
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub struct Stderr {
|
||||
inner: Arc<ReentrantMutex<RefCell<Maybe<StderrRaw>>>>,
|
||||
@ -432,8 +451,10 @@ pub struct Stderr {
|
||||
|
||||
/// A locked reference to the `Stderr` handle.
|
||||
///
|
||||
/// This handle implements the `Write` trait and is constructed via the `lock`
|
||||
/// method on `Stderr`.
|
||||
/// This handle implements the `Write` trait and is constructed via
|
||||
/// the [`Stderr::lock`] method.
|
||||
///
|
||||
/// [`Stderr::lock`]: struct.Stderr.html#method.lock
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub struct StderrLock<'a> {
|
||||
inner: ReentrantMutexGuard<'a, RefCell<Maybe<StderrRaw>>>,
|
||||
|
Loading…
x
Reference in New Issue
Block a user