1
Fork 0

std: Implement stdio for std::io

This is an implementation of RFC 899 and adds stdio functionality to the new
`std::io` module. Details of the API can be found on the RFC, but from a high
level:

* `io::{stdin, stdout, stderr}` constructors are now available. There are also
  `*_raw` variants for unbuffered and unlocked access.
* All handles are globally shared (excluding raw variants).
* The stderr handle is no longer buffered.
* All handles can be explicitly locked (excluding the raw variants).

The `print!` and `println!` machinery has not yet been hooked up to these
streams just yet. The `std::fmt::output` module has also not yet been
implemented as part of this commit.
This commit is contained in:
Alex Crichton 2015-02-24 23:27:20 -08:00
parent 8a69110c3b
commit 94d71f8836
20 changed files with 732 additions and 108 deletions

View file

@ -39,6 +39,10 @@ pub use self::buffered::IntoInnerError;
pub use self::cursor::Cursor;
pub use self::error::{Result, Error, ErrorKind};
pub use self::util::{copy, sink, Sink, empty, Empty, repeat, Repeat};
pub use self::stdio::{stdin, stdout, stderr, Stdin, Stdout, Stderr};
pub use self::stdio::{StdoutLock, StderrLock, StdinLock};
#[macro_use] mod lazy;
pub mod prelude;
mod buffered;
@ -46,6 +50,7 @@ mod cursor;
mod error;
mod impls;
mod util;
mod stdio;
const DEFAULT_BUF_SIZE: usize = 64 * 1024;