Auto merge of #21543 - alexcrichton:old-io, r=aturon
In preparation for the I/O rejuvination of the standard library, this commit
renames the current `io` module to `old_io` in order to make room for the new
I/O modules. It is expected that the I/O RFCs will land incrementally over time
instead of all at once, and this provides a fresh clean path for new modules to
enter into as well as guaranteeing that all old infrastructure will remain in
place for some time.
As each `old_io` module is replaced it will be deprecated in-place for new
structures in `std::{io, fs, net}` (as appropriate).
This commit does *not* leave a reexport of `old_io as io` as the deprecation
lint does not currently warn on this form of use. This is quite a large breaking
change for all imports in existing code, but all functionality is retained
precisely as-is and path statements simply need to be renamed from `io` to
`old_io`.
[breaking-change]
This commit is contained in:
commit
a6a6fadbb9
188 changed files with 1141 additions and 1116 deletions
|
|
@ -24,8 +24,8 @@ extern crate getopts;
|
|||
extern crate log;
|
||||
|
||||
use std::os;
|
||||
use std::io;
|
||||
use std::io::fs;
|
||||
use std::old_io;
|
||||
use std::old_io::fs;
|
||||
use std::str::FromStr;
|
||||
use std::thunk::Thunk;
|
||||
use getopts::{optopt, optflag, reqopt};
|
||||
|
|
@ -237,7 +237,7 @@ pub fn run_tests(config: &Config) {
|
|||
// sadly osx needs some file descriptor limits raised for running tests in
|
||||
// parallel (especially when we have lots and lots of child processes).
|
||||
// For context, see #8904
|
||||
io::test::raise_fd_limit();
|
||||
old_io::test::raise_fd_limit();
|
||||
// Prevent issue #21352 UAC blocking .exe containing 'patch' etc. on Windows
|
||||
// If #11207 is resolved (adding manifest to .exe) this becomes unnecessary
|
||||
os::setenv("__COMPAT_LAYER", "RunAsInvoker");
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
// except according to those terms.
|
||||
use self::WhichLine::*;
|
||||
|
||||
use std::io::{BufferedReader, File};
|
||||
use std::old_io::{BufferedReader, File};
|
||||
|
||||
pub struct ExpectedError {
|
||||
pub line: uint,
|
||||
|
|
|
|||
|
|
@ -223,7 +223,7 @@ pub fn is_test_ignored(config: &Config, testfile: &Path) -> bool {
|
|||
fn iter_header<F>(testfile: &Path, mut it: F) -> bool where
|
||||
F: FnMut(&str) -> bool,
|
||||
{
|
||||
use std::io::{BufferedReader, File};
|
||||
use std::old_io::{BufferedReader, File};
|
||||
|
||||
let mut rdr = BufferedReader::new(File::open(testfile).unwrap());
|
||||
for ln in rdr.lines() {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
use std::io::process::{ProcessExit, Command, Process, ProcessOutput};
|
||||
use std::old_io::process::{ProcessExit, Command, Process, ProcessOutput};
|
||||
use std::dynamic_lib::DynamicLibrary;
|
||||
|
||||
fn add_target_env(cmd: &mut Command, lib_path: &str, aux_path: Option<&str>) {
|
||||
|
|
@ -47,7 +47,7 @@ pub fn run(lib_path: &str,
|
|||
match cmd.spawn() {
|
||||
Ok(mut process) => {
|
||||
for input in input.iter() {
|
||||
process.stdin.as_mut().unwrap().write(input.as_bytes()).unwrap();
|
||||
process.stdin.as_mut().unwrap().write_all(input.as_bytes()).unwrap();
|
||||
}
|
||||
let ProcessOutput { status, output, error } =
|
||||
process.wait_with_output().unwrap();
|
||||
|
|
@ -79,7 +79,7 @@ pub fn run_background(lib_path: &str,
|
|||
match cmd.spawn() {
|
||||
Ok(mut process) => {
|
||||
for input in input.iter() {
|
||||
process.stdin.as_mut().unwrap().write(input.as_bytes()).unwrap();
|
||||
process.stdin.as_mut().unwrap().write_all(input.as_bytes()).unwrap();
|
||||
}
|
||||
|
||||
Some(process)
|
||||
|
|
|
|||
|
|
@ -23,14 +23,14 @@ use util;
|
|||
|
||||
#[cfg(target_os = "windows")]
|
||||
use std::ascii::AsciiExt;
|
||||
use std::io::File;
|
||||
use std::io::fs::PathExtensions;
|
||||
use std::io::fs;
|
||||
use std::io::net::tcp;
|
||||
use std::io::process::ProcessExit;
|
||||
use std::io::process;
|
||||
use std::io::timer;
|
||||
use std::io;
|
||||
use std::old_io::File;
|
||||
use std::old_io::fs::PathExtensions;
|
||||
use std::old_io::fs;
|
||||
use std::old_io::net::tcp;
|
||||
use std::old_io::process::ProcessExit;
|
||||
use std::old_io::process;
|
||||
use std::old_io::timer;
|
||||
use std::old_io;
|
||||
use std::os;
|
||||
use std::iter::repeat;
|
||||
use std::str;
|
||||
|
|
@ -619,7 +619,7 @@ fn find_rust_src_root(config: &Config) -> Option<Path> {
|
|||
}
|
||||
|
||||
fn run_debuginfo_lldb_test(config: &Config, props: &TestProps, testfile: &Path) {
|
||||
use std::io::process::{Command, ProcessOutput};
|
||||
use std::old_io::process::{Command, ProcessOutput};
|
||||
|
||||
if config.lldb_python_dir.is_none() {
|
||||
fatal("Can't run LLDB test because LLDB's python path is not set.");
|
||||
|
|
@ -764,7 +764,7 @@ struct DebuggerCommands {
|
|||
|
||||
fn parse_debugger_commands(file_path: &Path, debugger_prefix: &str)
|
||||
-> DebuggerCommands {
|
||||
use std::io::{BufferedReader, File};
|
||||
use std::old_io::{BufferedReader, File};
|
||||
|
||||
let command_directive = format!("{}-command", debugger_prefix);
|
||||
let check_directive = format!("{}-check", debugger_prefix);
|
||||
|
|
@ -1224,7 +1224,7 @@ fn compose_and_run_compiler(
|
|||
|
||||
fn ensure_dir(path: &Path) {
|
||||
if path.is_dir() { return; }
|
||||
fs::mkdir(path, io::USER_RWX).unwrap();
|
||||
fs::mkdir(path, old_io::USER_RWX).unwrap();
|
||||
}
|
||||
|
||||
fn compose_and_run(config: &Config, testfile: &Path,
|
||||
|
|
@ -1401,7 +1401,7 @@ fn dump_output(config: &Config, testfile: &Path, out: &str, err: &str) {
|
|||
fn dump_output_file(config: &Config, testfile: &Path,
|
||||
out: &str, extension: &str) {
|
||||
let outfile = make_out_name(config, testfile, extension);
|
||||
File::create(&outfile).write(out.as_bytes()).unwrap();
|
||||
File::create(&outfile).write_all(out.as_bytes()).unwrap();
|
||||
}
|
||||
|
||||
fn make_out_name(config: &Config, testfile: &Path, extension: &str) -> Path {
|
||||
|
|
|
|||
|
|
@ -75,14 +75,14 @@ Let's get to it! The first thing we need to do for our guessing game is
|
|||
allow our player to input a guess. Put this in your `src/main.rs`:
|
||||
|
||||
```{rust,no_run}
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
|
||||
fn main() {
|
||||
println!("Guess the number!");
|
||||
|
||||
println!("Please input your guess.");
|
||||
|
||||
let input = io::stdin().read_line()
|
||||
let input = old_io::stdin().read_line()
|
||||
.ok()
|
||||
.expect("Failed to read line");
|
||||
|
||||
|
|
@ -121,7 +121,7 @@ explanatory text, and then an example. Let's try to modify our code to add in th
|
|||
`random` function and see what happens:
|
||||
|
||||
```{rust,ignore}
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
use std::rand;
|
||||
|
||||
fn main() {
|
||||
|
|
@ -133,7 +133,7 @@ fn main() {
|
|||
|
||||
println!("Please input your guess.");
|
||||
|
||||
let input = io::stdin().read_line()
|
||||
let input = old_io::stdin().read_line()
|
||||
.ok()
|
||||
.expect("Failed to read line");
|
||||
|
||||
|
|
@ -180,7 +180,7 @@ This says "please give me a random `i32` value." We can change our code to use
|
|||
this hint:
|
||||
|
||||
```{rust,no_run}
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
use std::rand;
|
||||
|
||||
fn main() {
|
||||
|
|
@ -192,7 +192,7 @@ fn main() {
|
|||
|
||||
println!("Please input your guess.");
|
||||
|
||||
let input = io::stdin().read_line()
|
||||
let input = old_io::stdin().read_line()
|
||||
.ok()
|
||||
.expect("Failed to read line");
|
||||
|
||||
|
|
@ -233,7 +233,7 @@ unsigned integer approach. If we want a random positive number, we should ask fo
|
|||
a random positive number. Our code looks like this now:
|
||||
|
||||
```{rust,no_run}
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
use std::rand;
|
||||
|
||||
fn main() {
|
||||
|
|
@ -245,7 +245,7 @@ fn main() {
|
|||
|
||||
println!("Please input your guess.");
|
||||
|
||||
let input = io::stdin().read_line()
|
||||
let input = old_io::stdin().read_line()
|
||||
.ok()
|
||||
.expect("Failed to read line");
|
||||
|
||||
|
|
@ -276,7 +276,7 @@ two numbers. Let's add that in, along with a `match` statement to compare our
|
|||
guess to the secret number:
|
||||
|
||||
```{rust,ignore}
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
use std::rand;
|
||||
use std::cmp::Ordering;
|
||||
|
||||
|
|
@ -289,7 +289,7 @@ fn main() {
|
|||
|
||||
println!("Please input your guess.");
|
||||
|
||||
let input = io::stdin().read_line()
|
||||
let input = old_io::stdin().read_line()
|
||||
.ok()
|
||||
.expect("Failed to read line");
|
||||
|
||||
|
|
@ -331,7 +331,7 @@ but we've given it unsigned integers. In this case, the fix is easy, because
|
|||
we wrote the `cmp` function! Let's change it to take `u32`s:
|
||||
|
||||
```{rust,ignore}
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
use std::rand;
|
||||
use std::cmp::Ordering;
|
||||
|
||||
|
|
@ -344,7 +344,7 @@ fn main() {
|
|||
|
||||
println!("Please input your guess.");
|
||||
|
||||
let input = io::stdin().read_line()
|
||||
let input = old_io::stdin().read_line()
|
||||
.ok()
|
||||
.expect("Failed to read line");
|
||||
|
||||
|
|
@ -397,7 +397,7 @@ Anyway, we have a `String`, but we need a `u32`. What to do? Well, there's
|
|||
a function for that:
|
||||
|
||||
```{rust,ignore}
|
||||
let input = io::stdin().read_line()
|
||||
let input = old_io::stdin().read_line()
|
||||
.ok()
|
||||
.expect("Failed to read line");
|
||||
let input_num: Option<u32> = input.parse();
|
||||
|
|
@ -429,7 +429,7 @@ let input_num: Option<u32> = "5".parse(); // input_num: Option<u32>
|
|||
Anyway, with us now converting our input to a number, our code looks like this:
|
||||
|
||||
```{rust,ignore}
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
use std::rand;
|
||||
use std::cmp::Ordering;
|
||||
|
||||
|
|
@ -442,7 +442,7 @@ fn main() {
|
|||
|
||||
println!("Please input your guess.");
|
||||
|
||||
let input = io::stdin().read_line()
|
||||
let input = old_io::stdin().read_line()
|
||||
.ok()
|
||||
.expect("Failed to read line");
|
||||
let input_num: Option<u32> = input.parse();
|
||||
|
|
@ -479,7 +479,7 @@ need to unwrap the Option. If you remember from before, `match` is a great way
|
|||
to do that. Try this code:
|
||||
|
||||
```{rust,no_run}
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
use std::rand;
|
||||
use std::cmp::Ordering;
|
||||
|
||||
|
|
@ -492,7 +492,7 @@ fn main() {
|
|||
|
||||
println!("Please input your guess.");
|
||||
|
||||
let input = io::stdin().read_line()
|
||||
let input = old_io::stdin().read_line()
|
||||
.ok()
|
||||
.expect("Failed to read line");
|
||||
let input_num: Option<u32> = input.parse();
|
||||
|
|
@ -546,7 +546,7 @@ method we can use defined on them: `trim()`. One small modification, and our
|
|||
code looks like this:
|
||||
|
||||
```{rust,no_run}
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
use std::rand;
|
||||
use std::cmp::Ordering;
|
||||
|
||||
|
|
@ -559,7 +559,7 @@ fn main() {
|
|||
|
||||
println!("Please input your guess.");
|
||||
|
||||
let input = io::stdin().read_line()
|
||||
let input = old_io::stdin().read_line()
|
||||
.ok()
|
||||
.expect("Failed to read line");
|
||||
let input_num: Option<u32> = input.trim().parse();
|
||||
|
|
@ -620,7 +620,7 @@ As we already discussed, the `loop` keyword gives us an infinite loop.
|
|||
Let's add that in:
|
||||
|
||||
```{rust,no_run}
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
use std::rand;
|
||||
use std::cmp::Ordering;
|
||||
|
||||
|
|
@ -635,7 +635,7 @@ fn main() {
|
|||
|
||||
println!("Please input your guess.");
|
||||
|
||||
let input = io::stdin().read_line()
|
||||
let input = old_io::stdin().read_line()
|
||||
.ok()
|
||||
.expect("Failed to read line");
|
||||
let input_num: Option<u32> = input.trim().parse();
|
||||
|
|
@ -696,7 +696,7 @@ Ha! `quit` actually quits. As does any other non-number input. Well, this is
|
|||
suboptimal to say the least. First, let's actually quit when you win the game:
|
||||
|
||||
```{rust,no_run}
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
use std::rand;
|
||||
use std::cmp::Ordering;
|
||||
|
||||
|
|
@ -711,7 +711,7 @@ fn main() {
|
|||
|
||||
println!("Please input your guess.");
|
||||
|
||||
let input = io::stdin().read_line()
|
||||
let input = old_io::stdin().read_line()
|
||||
.ok()
|
||||
.expect("Failed to read line");
|
||||
let input_num: Option<u32> = input.trim().parse();
|
||||
|
|
@ -752,7 +752,7 @@ we don't want to quit, we just want to ignore it. Change that `return` to
|
|||
|
||||
|
||||
```{rust,no_run}
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
use std::rand;
|
||||
use std::cmp::Ordering;
|
||||
|
||||
|
|
@ -767,7 +767,7 @@ fn main() {
|
|||
|
||||
println!("Please input your guess.");
|
||||
|
||||
let input = io::stdin().read_line()
|
||||
let input = old_io::stdin().read_line()
|
||||
.ok()
|
||||
.expect("Failed to read line");
|
||||
let input_num: Option<u32> = input.trim().parse();
|
||||
|
|
@ -831,7 +831,7 @@ think of what it is? That's right, we don't want to print out the secret number.
|
|||
It was good for testing, but it kind of ruins the game. Here's our final source:
|
||||
|
||||
```{rust,no_run}
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
use std::rand;
|
||||
use std::cmp::Ordering;
|
||||
|
||||
|
|
@ -844,7 +844,7 @@ fn main() {
|
|||
|
||||
println!("Please input your guess.");
|
||||
|
||||
let input = io::stdin().read_line()
|
||||
let input = old_io::stdin().read_line()
|
||||
.ok()
|
||||
.expect("Failed to read line");
|
||||
let input_num: Option<u32> = input.trim().parse();
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ and then prints it back out:
|
|||
fn main() {
|
||||
println!("Type something!");
|
||||
|
||||
let input = std::io::stdin().read_line().ok().expect("Failed to read line");
|
||||
let input = std::old_io::stdin().read_line().ok().expect("Failed to read line");
|
||||
|
||||
println!("{}", input);
|
||||
}
|
||||
|
|
@ -17,7 +17,7 @@ fn main() {
|
|||
Let's go over these chunks, one by one:
|
||||
|
||||
```{rust,ignore}
|
||||
std::io::stdin();
|
||||
std::old_io::stdin();
|
||||
```
|
||||
|
||||
This calls a function, `stdin()`, that lives inside the `std::io` module. As
|
||||
|
|
@ -28,7 +28,7 @@ Since writing the fully qualified name all the time is annoying, we can use
|
|||
the `use` statement to import it in:
|
||||
|
||||
```{rust}
|
||||
use std::io::stdin;
|
||||
use std::old_io::stdin;
|
||||
|
||||
stdin();
|
||||
```
|
||||
|
|
@ -37,20 +37,20 @@ However, it's considered better practice to not import individual functions, but
|
|||
to import the module, and only use one level of qualification:
|
||||
|
||||
```{rust}
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
|
||||
io::stdin();
|
||||
old_io::stdin();
|
||||
```
|
||||
|
||||
Let's update our example to use this style:
|
||||
|
||||
```{rust,ignore}
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
|
||||
fn main() {
|
||||
println!("Type something!");
|
||||
|
||||
let input = io::stdin().read_line().ok().expect("Failed to read line");
|
||||
let input = old_io::stdin().read_line().ok().expect("Failed to read line");
|
||||
|
||||
println!("{}", input);
|
||||
}
|
||||
|
|
@ -121,12 +121,12 @@ For now, this gives you enough of a basic understanding to work with.
|
|||
Back to the code we were working on! Here's a refresher:
|
||||
|
||||
```{rust,ignore}
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
|
||||
fn main() {
|
||||
println!("Type something!");
|
||||
|
||||
let input = io::stdin().read_line().ok().expect("Failed to read line");
|
||||
let input = old_io::stdin().read_line().ok().expect("Failed to read line");
|
||||
|
||||
println!("{}", input);
|
||||
}
|
||||
|
|
@ -136,14 +136,14 @@ With long lines like this, Rust gives you some flexibility with the whitespace.
|
|||
We _could_ write the example like this:
|
||||
|
||||
```{rust,ignore}
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
|
||||
fn main() {
|
||||
println!("Type something!");
|
||||
|
||||
// here, we'll show the types at each step
|
||||
|
||||
let input = io::stdin() // std::io::stdio::StdinReader
|
||||
let input = old_io::stdin() // std::old_io::stdio::StdinReader
|
||||
.read_line() // IoResult<String>
|
||||
.ok() // Option<String>
|
||||
.expect("Failed to read line"); // String
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
//!
|
||||
//! ```
|
||||
//! use std::error::FromError;
|
||||
//! use std::io::{File, IoError};
|
||||
//! use std::old_io::{File, IoError};
|
||||
//! use std::os::{MemoryMap, MapError};
|
||||
//! use std::path::Path;
|
||||
//!
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@
|
|||
//! by the [`Writer`](../io/trait.Writer.html) trait:
|
||||
//!
|
||||
//! ```
|
||||
//! use std::io::IoError;
|
||||
//! use std::old_io::IoError;
|
||||
//!
|
||||
//! trait Writer {
|
||||
//! fn write_line(&mut self, s: &str) -> Result<(), IoError>;
|
||||
|
|
@ -110,7 +110,7 @@
|
|||
//! something like this:
|
||||
//!
|
||||
//! ```{.ignore}
|
||||
//! use std::io::{File, Open, Write};
|
||||
//! use std::old_io::{File, Open, Write};
|
||||
//!
|
||||
//! let mut file = File::open_mode(&Path::new("valuable_data.txt"), Open, Write);
|
||||
//! // If `write_line` errors, then we'll never know, because the return
|
||||
|
|
@ -128,7 +128,7 @@
|
|||
//! a marginally useful message indicating why:
|
||||
//!
|
||||
//! ```{.no_run}
|
||||
//! use std::io::{File, Open, Write};
|
||||
//! use std::old_io::{File, Open, Write};
|
||||
//!
|
||||
//! let mut file = File::open_mode(&Path::new("valuable_data.txt"), Open, Write);
|
||||
//! file.write_line("important message").ok().expect("failed to write message");
|
||||
|
|
@ -138,7 +138,7 @@
|
|||
//! You might also simply assert success:
|
||||
//!
|
||||
//! ```{.no_run}
|
||||
//! # use std::io::{File, Open, Write};
|
||||
//! # use std::old_io::{File, Open, Write};
|
||||
//!
|
||||
//! # let mut file = File::open_mode(&Path::new("valuable_data.txt"), Open, Write);
|
||||
//! assert!(file.write_line("important message").is_ok());
|
||||
|
|
@ -148,7 +148,7 @@
|
|||
//! Or propagate the error up the call stack with `try!`:
|
||||
//!
|
||||
//! ```
|
||||
//! # use std::io::{File, Open, Write, IoError};
|
||||
//! # use std::old_io::{File, Open, Write, IoError};
|
||||
//! fn write_message() -> Result<(), IoError> {
|
||||
//! let mut file = File::open_mode(&Path::new("valuable_data.txt"), Open, Write);
|
||||
//! try!(file.write_line("important message"));
|
||||
|
|
@ -167,7 +167,7 @@
|
|||
//! It replaces this:
|
||||
//!
|
||||
//! ```
|
||||
//! use std::io::{File, Open, Write, IoError};
|
||||
//! use std::old_io::{File, Open, Write, IoError};
|
||||
//!
|
||||
//! struct Info {
|
||||
//! name: String,
|
||||
|
|
@ -191,7 +191,7 @@
|
|||
//! With this:
|
||||
//!
|
||||
//! ```
|
||||
//! use std::io::{File, Open, Write, IoError};
|
||||
//! use std::old_io::{File, Open, Write, IoError};
|
||||
//!
|
||||
//! struct Info {
|
||||
//! name: String,
|
||||
|
|
@ -444,7 +444,7 @@ impl<T, E> Result<T, E> {
|
|||
/// ignoring I/O and parse errors:
|
||||
///
|
||||
/// ```
|
||||
/// use std::io::IoResult;
|
||||
/// use std::old_io::IoResult;
|
||||
///
|
||||
/// let mut buffer = &mut b"1\n2\n3\n4\n";
|
||||
///
|
||||
|
|
|
|||
|
|
@ -170,7 +170,7 @@ mod u32 {
|
|||
use test::Bencher;
|
||||
use core::fmt::radix;
|
||||
use std::rand::{weak_rng, Rng};
|
||||
use std::io::util::NullWriter;
|
||||
use std::old_io::util::NullWriter;
|
||||
|
||||
#[bench]
|
||||
fn format_bin(b: &mut Bencher) {
|
||||
|
|
@ -213,7 +213,7 @@ mod i32 {
|
|||
use test::Bencher;
|
||||
use core::fmt::radix;
|
||||
use std::rand::{weak_rng, Rng};
|
||||
use std::io::util::NullWriter;
|
||||
use std::old_io::util::NullWriter;
|
||||
|
||||
#[bench]
|
||||
fn format_bin(b: &mut Bencher) {
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@
|
|||
//! ```no_run
|
||||
//! # pub fn render_to<W:Writer>(output: &mut W) { unimplemented!() }
|
||||
//! pub fn main() {
|
||||
//! use std::io::File;
|
||||
//! use std::old_io::File;
|
||||
//! let mut f = File::create(&Path::new("example1.dot"));
|
||||
//! render_to(&mut f)
|
||||
//! }
|
||||
|
|
@ -188,7 +188,7 @@
|
|||
//! ```no_run
|
||||
//! # pub fn render_to<W:Writer>(output: &mut W) { unimplemented!() }
|
||||
//! pub fn main() {
|
||||
//! use std::io::File;
|
||||
//! use std::old_io::File;
|
||||
//! let mut f = File::create(&Path::new("example2.dot"));
|
||||
//! render_to(&mut f)
|
||||
//! }
|
||||
|
|
@ -252,7 +252,7 @@
|
|||
//! ```no_run
|
||||
//! # pub fn render_to<W:Writer>(output: &mut W) { unimplemented!() }
|
||||
//! pub fn main() {
|
||||
//! use std::io::File;
|
||||
//! use std::old_io::File;
|
||||
//! let mut f = File::create(&Path::new("example3.dot"));
|
||||
//! render_to(&mut f)
|
||||
//! }
|
||||
|
|
@ -279,7 +279,7 @@
|
|||
use self::LabelText::*;
|
||||
|
||||
use std::borrow::IntoCow;
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
use std::string::CowString;
|
||||
use std::vec::CowVec;
|
||||
|
||||
|
|
@ -532,7 +532,7 @@ pub fn default_options() -> Vec<RenderOption> { vec![] }
|
|||
/// (Simple wrapper around `render_opts` that passes a default set of options.)
|
||||
pub fn render<'a, N:Clone+'a, E:Clone+'a, G:Labeller<'a,N,E>+GraphWalk<'a,N,E>, W:Writer>(
|
||||
g: &'a G,
|
||||
w: &mut W) -> io::IoResult<()> {
|
||||
w: &mut W) -> old_io::IoResult<()> {
|
||||
render_opts(g, w, &[])
|
||||
}
|
||||
|
||||
|
|
@ -541,14 +541,14 @@ pub fn render<'a, N:Clone+'a, E:Clone+'a, G:Labeller<'a,N,E>+GraphWalk<'a,N,E>,
|
|||
pub fn render_opts<'a, N:Clone+'a, E:Clone+'a, G:Labeller<'a,N,E>+GraphWalk<'a,N,E>, W:Writer>(
|
||||
g: &'a G,
|
||||
w: &mut W,
|
||||
options: &[RenderOption]) -> io::IoResult<()>
|
||||
options: &[RenderOption]) -> old_io::IoResult<()>
|
||||
{
|
||||
fn writeln<W:Writer>(w: &mut W, arg: &[&str]) -> io::IoResult<()> {
|
||||
fn writeln<W:Writer>(w: &mut W, arg: &[&str]) -> old_io::IoResult<()> {
|
||||
for &s in arg.iter() { try!(w.write_str(s)); }
|
||||
w.write_char('\n')
|
||||
}
|
||||
|
||||
fn indent<W:Writer>(w: &mut W) -> io::IoResult<()> {
|
||||
fn indent<W:Writer>(w: &mut W) -> old_io::IoResult<()> {
|
||||
w.write_str(" ")
|
||||
}
|
||||
|
||||
|
|
@ -590,7 +590,7 @@ mod tests {
|
|||
use self::NodeLabels::*;
|
||||
use super::{Id, Labeller, Nodes, Edges, GraphWalk, render};
|
||||
use super::LabelText::{self, LabelStr, EscStr};
|
||||
use std::io::IoResult;
|
||||
use std::old_io::IoResult;
|
||||
use std::borrow::IntoCow;
|
||||
use std::iter::repeat;
|
||||
|
||||
|
|
|
|||
|
|
@ -174,8 +174,8 @@
|
|||
|
||||
use std::cell::RefCell;
|
||||
use std::fmt;
|
||||
use std::io::LineBufferedWriter;
|
||||
use std::io;
|
||||
use std::old_io::LineBufferedWriter;
|
||||
use std::old_io;
|
||||
use std::mem;
|
||||
use std::os;
|
||||
use std::ptr;
|
||||
|
|
@ -232,7 +232,7 @@ pub trait Logger {
|
|||
}
|
||||
|
||||
struct DefaultLogger {
|
||||
handle: LineBufferedWriter<io::stdio::StdWriter>,
|
||||
handle: LineBufferedWriter<old_io::stdio::StdWriter>,
|
||||
}
|
||||
|
||||
/// Wraps the log level with fmt implementations.
|
||||
|
|
@ -294,7 +294,7 @@ pub fn log(level: u32, loc: &'static LogLocation, args: fmt::Arguments) {
|
|||
let mut logger = LOCAL_LOGGER.with(|s| {
|
||||
s.borrow_mut().take()
|
||||
}).unwrap_or_else(|| {
|
||||
box DefaultLogger { handle: io::stderr() } as Box<Logger + Send>
|
||||
box DefaultLogger { handle: old_io::stderr() } as Box<Logger + Send>
|
||||
});
|
||||
logger.log(&LogRecord {
|
||||
level: LogLevel(level),
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
use std::io::{IoError, IoResult, SeekStyle};
|
||||
use std::io;
|
||||
use std::old_io::{IoError, IoResult, SeekStyle};
|
||||
use std::old_io;
|
||||
use std::slice;
|
||||
use std::iter::repeat;
|
||||
|
||||
|
|
@ -18,14 +18,14 @@ static BUF_CAPACITY: uint = 128;
|
|||
fn combine(seek: SeekStyle, cur: uint, end: uint, offset: i64) -> IoResult<u64> {
|
||||
// compute offset as signed and clamp to prevent overflow
|
||||
let pos = match seek {
|
||||
io::SeekSet => 0,
|
||||
io::SeekEnd => end,
|
||||
io::SeekCur => cur,
|
||||
old_io::SeekSet => 0,
|
||||
old_io::SeekEnd => end,
|
||||
old_io::SeekCur => cur,
|
||||
} as i64;
|
||||
|
||||
if offset + pos < 0 {
|
||||
Err(IoError {
|
||||
kind: io::InvalidInput,
|
||||
kind: old_io::InvalidInput,
|
||||
desc: "invalid seek to a negative offset",
|
||||
detail: None
|
||||
})
|
||||
|
|
@ -80,7 +80,7 @@ impl SeekableMemWriter {
|
|||
|
||||
impl Writer for SeekableMemWriter {
|
||||
#[inline]
|
||||
fn write(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
fn write_all(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
if self.pos == self.buf.len() {
|
||||
self.buf.push_all(buf)
|
||||
} else {
|
||||
|
|
@ -132,7 +132,7 @@ impl Seek for SeekableMemWriter {
|
|||
mod tests {
|
||||
extern crate test;
|
||||
use super::SeekableMemWriter;
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
use std::iter::repeat;
|
||||
use test::Bencher;
|
||||
|
||||
|
|
@ -148,23 +148,23 @@ mod tests {
|
|||
let b: &[_] = &[0, 1, 2, 3, 4, 5, 6, 7];
|
||||
assert_eq!(writer.get_ref(), b);
|
||||
|
||||
writer.seek(0, io::SeekSet).unwrap();
|
||||
writer.seek(0, old_io::SeekSet).unwrap();
|
||||
assert_eq!(writer.tell(), Ok(0));
|
||||
writer.write(&[3, 4]).unwrap();
|
||||
let b: &[_] = &[3, 4, 2, 3, 4, 5, 6, 7];
|
||||
assert_eq!(writer.get_ref(), b);
|
||||
|
||||
writer.seek(1, io::SeekCur).unwrap();
|
||||
writer.seek(1, old_io::SeekCur).unwrap();
|
||||
writer.write(&[0, 1]).unwrap();
|
||||
let b: &[_] = &[3, 4, 2, 0, 1, 5, 6, 7];
|
||||
assert_eq!(writer.get_ref(), b);
|
||||
|
||||
writer.seek(-1, io::SeekEnd).unwrap();
|
||||
writer.seek(-1, old_io::SeekEnd).unwrap();
|
||||
writer.write(&[1, 2]).unwrap();
|
||||
let b: &[_] = &[3, 4, 2, 0, 1, 5, 6, 1, 2];
|
||||
assert_eq!(writer.get_ref(), b);
|
||||
|
||||
writer.seek(1, io::SeekEnd).unwrap();
|
||||
writer.seek(1, old_io::SeekEnd).unwrap();
|
||||
writer.write(&[1]).unwrap();
|
||||
let b: &[_] = &[3, 4, 2, 0, 1, 5, 6, 1, 2, 0, 1];
|
||||
assert_eq!(writer.get_ref(), b);
|
||||
|
|
@ -173,14 +173,14 @@ mod tests {
|
|||
#[test]
|
||||
fn seek_past_end() {
|
||||
let mut r = SeekableMemWriter::new();
|
||||
r.seek(10, io::SeekSet).unwrap();
|
||||
r.seek(10, old_io::SeekSet).unwrap();
|
||||
assert!(r.write(&[3]).is_ok());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn seek_before_0() {
|
||||
let mut r = SeekableMemWriter::new();
|
||||
assert!(r.seek(-1, io::SeekSet).is_err());
|
||||
assert!(r.seek(-1, old_io::SeekSet).is_err());
|
||||
}
|
||||
|
||||
fn do_bench_seekable_mem_writer(b: &mut Bencher, times: uint, len: uint) {
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ pub enum EbmlEncoderTag {
|
|||
pub enum Error {
|
||||
IntTooBig(uint),
|
||||
Expected(String),
|
||||
IoError(std::io::IoError),
|
||||
IoError(std::old_io::IoError),
|
||||
ApplicationError(String)
|
||||
}
|
||||
|
||||
|
|
@ -127,7 +127,7 @@ pub mod reader {
|
|||
use std::char;
|
||||
|
||||
use std::int;
|
||||
use std::io::extensions::u64_from_be_bytes;
|
||||
use std::old_io::extensions::u64_from_be_bytes;
|
||||
use std::mem::transmute;
|
||||
use std::num::Int;
|
||||
use std::option::Option;
|
||||
|
|
@ -685,9 +685,9 @@ pub mod reader {
|
|||
|
||||
pub mod writer {
|
||||
use std::clone::Clone;
|
||||
use std::io::extensions::u64_to_be_bytes;
|
||||
use std::io::{Writer, Seek};
|
||||
use std::io;
|
||||
use std::old_io::extensions::u64_to_be_bytes;
|
||||
use std::old_io::{Writer, Seek};
|
||||
use std::old_io;
|
||||
use std::mem;
|
||||
|
||||
use super::{ EsVec, EsMap, EsEnum, EsVecLen, EsVecElt, EsMapLen, EsMapKey,
|
||||
|
|
@ -698,7 +698,7 @@ pub mod writer {
|
|||
use serialize;
|
||||
|
||||
|
||||
pub type EncodeResult = io::IoResult<()>;
|
||||
pub type EncodeResult = old_io::IoResult<()>;
|
||||
|
||||
// rbml writing
|
||||
pub struct Encoder<'a, W:'a> {
|
||||
|
|
@ -708,14 +708,14 @@ pub mod writer {
|
|||
|
||||
fn write_sized_vuint<W: Writer>(w: &mut W, n: uint, size: uint) -> EncodeResult {
|
||||
match size {
|
||||
1u => w.write(&[0x80u8 | (n as u8)]),
|
||||
2u => w.write(&[0x40u8 | ((n >> 8_u) as u8), n as u8]),
|
||||
3u => w.write(&[0x20u8 | ((n >> 16_u) as u8), (n >> 8_u) as u8,
|
||||
1u => w.write_all(&[0x80u8 | (n as u8)]),
|
||||
2u => w.write_all(&[0x40u8 | ((n >> 8_u) as u8), n as u8]),
|
||||
3u => w.write_all(&[0x20u8 | ((n >> 16_u) as u8), (n >> 8_u) as u8,
|
||||
n as u8]),
|
||||
4u => w.write(&[0x10u8 | ((n >> 24_u) as u8), (n >> 16_u) as u8,
|
||||
4u => w.write_all(&[0x10u8 | ((n >> 24_u) as u8), (n >> 16_u) as u8,
|
||||
(n >> 8_u) as u8, n as u8]),
|
||||
_ => Err(io::IoError {
|
||||
kind: io::OtherIoError,
|
||||
_ => Err(old_io::IoError {
|
||||
kind: old_io::OtherIoError,
|
||||
desc: "int too big",
|
||||
detail: Some(format!("{}", n))
|
||||
})
|
||||
|
|
@ -727,8 +727,8 @@ pub mod writer {
|
|||
if n < 0x4000_u { return write_sized_vuint(w, n, 2u); }
|
||||
if n < 0x200000_u { return write_sized_vuint(w, n, 3u); }
|
||||
if n < 0x10000000_u { return write_sized_vuint(w, n, 4u); }
|
||||
Err(io::IoError {
|
||||
kind: io::OtherIoError,
|
||||
Err(old_io::IoError {
|
||||
kind: old_io::OtherIoError,
|
||||
desc: "int too big",
|
||||
detail: Some(format!("{}", n))
|
||||
})
|
||||
|
|
@ -760,16 +760,16 @@ pub mod writer {
|
|||
// Write a placeholder four-byte size.
|
||||
self.size_positions.push(try!(self.writer.tell()) as uint);
|
||||
let zeroes: &[u8] = &[0u8, 0u8, 0u8, 0u8];
|
||||
self.writer.write(zeroes)
|
||||
self.writer.write_all(zeroes)
|
||||
}
|
||||
|
||||
pub fn end_tag(&mut self) -> EncodeResult {
|
||||
let last_size_pos = self.size_positions.pop().unwrap();
|
||||
let cur_pos = try!(self.writer.tell());
|
||||
try!(self.writer.seek(last_size_pos as i64, io::SeekSet));
|
||||
try!(self.writer.seek(last_size_pos as i64, old_io::SeekSet));
|
||||
let size = cur_pos as uint - last_size_pos - 4;
|
||||
try!(write_sized_vuint(self.writer, size, 4u));
|
||||
let r = try!(self.writer.seek(cur_pos as i64, io::SeekSet));
|
||||
let r = try!(self.writer.seek(cur_pos as i64, old_io::SeekSet));
|
||||
|
||||
debug!("End tag (size = {:?})", size);
|
||||
Ok(r)
|
||||
|
|
@ -786,7 +786,7 @@ pub mod writer {
|
|||
pub fn wr_tagged_bytes(&mut self, tag_id: uint, b: &[u8]) -> EncodeResult {
|
||||
try!(write_vuint(self.writer, tag_id));
|
||||
try!(write_vuint(self.writer, b.len()));
|
||||
self.writer.write(b)
|
||||
self.writer.write_all(b)
|
||||
}
|
||||
|
||||
pub fn wr_tagged_u64(&mut self, tag_id: uint, v: u64) -> EncodeResult {
|
||||
|
|
@ -839,12 +839,12 @@ pub mod writer {
|
|||
|
||||
pub fn wr_bytes(&mut self, b: &[u8]) -> EncodeResult {
|
||||
debug!("Write {:?} bytes", b.len());
|
||||
self.writer.write(b)
|
||||
self.writer.write_all(b)
|
||||
}
|
||||
|
||||
pub fn wr_str(&mut self, s: &str) -> EncodeResult {
|
||||
debug!("Write str: {:?}", s);
|
||||
self.writer.write(s.as_bytes())
|
||||
self.writer.write_all(s.as_bytes())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -883,7 +883,7 @@ pub mod writer {
|
|||
}
|
||||
|
||||
impl<'a, W: Writer + Seek> serialize::Encoder for Encoder<'a, W> {
|
||||
type Error = io::IoError;
|
||||
type Error = old_io::IoError;
|
||||
|
||||
fn emit_nil(&mut self) -> EncodeResult {
|
||||
Ok(())
|
||||
|
|
|
|||
|
|
@ -34,8 +34,8 @@ use middle::astencode::vtable_decoder_helpers;
|
|||
|
||||
use std::collections::HashMap;
|
||||
use std::hash::{self, Hash, SipHasher};
|
||||
use std::io::extensions::u64_from_be_bytes;
|
||||
use std::io;
|
||||
use std::old_io::extensions::u64_from_be_bytes;
|
||||
use std::old_io;
|
||||
use std::num::FromPrimitive;
|
||||
use std::rc::Rc;
|
||||
use std::str;
|
||||
|
|
@ -1178,7 +1178,7 @@ fn get_attributes(md: rbml::Doc) -> Vec<ast::Attribute> {
|
|||
}
|
||||
|
||||
fn list_crate_attributes(md: rbml::Doc, hash: &Svh,
|
||||
out: &mut io::Writer) -> io::IoResult<()> {
|
||||
out: &mut old_io::Writer) -> old_io::IoResult<()> {
|
||||
try!(write!(out, "=Crate Attributes ({})=\n", *hash));
|
||||
|
||||
let r = get_attributes(md);
|
||||
|
|
@ -1223,7 +1223,7 @@ pub fn get_crate_deps(data: &[u8]) -> Vec<CrateDep> {
|
|||
return deps;
|
||||
}
|
||||
|
||||
fn list_crate_deps(data: &[u8], out: &mut io::Writer) -> io::IoResult<()> {
|
||||
fn list_crate_deps(data: &[u8], out: &mut old_io::Writer) -> old_io::IoResult<()> {
|
||||
try!(write!(out, "=External Dependencies=\n"));
|
||||
for dep in get_crate_deps(data).iter() {
|
||||
try!(write!(out, "{} {}-{}\n", dep.cnum, dep.name, dep.hash));
|
||||
|
|
@ -1262,7 +1262,7 @@ pub fn get_crate_name(data: &[u8]) -> String {
|
|||
maybe_get_crate_name(data).expect("no crate name in crate")
|
||||
}
|
||||
|
||||
pub fn list_crate_metadata(bytes: &[u8], out: &mut io::Writer) -> io::IoResult<()> {
|
||||
pub fn list_crate_metadata(bytes: &[u8], out: &mut old_io::Writer) -> old_io::IoResult<()> {
|
||||
let hash = get_crate_hash(bytes);
|
||||
let md = rbml::Doc::new(bytes);
|
||||
try!(list_crate_attributes(md, &hash, out));
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ fn encode_trait_ref<'a, 'tcx>(rbml_w: &mut Encoder,
|
|||
// Item info table encoding
|
||||
fn encode_family(rbml_w: &mut Encoder, c: char) {
|
||||
rbml_w.start_tag(tag_items_data_item_family);
|
||||
rbml_w.writer.write(&[c as u8]);
|
||||
rbml_w.writer.write_all(&[c as u8]);
|
||||
rbml_w.end_tag();
|
||||
}
|
||||
|
||||
|
|
@ -149,7 +149,7 @@ fn encode_bounds_and_type<'a, 'tcx>(rbml_w: &mut Encoder,
|
|||
fn encode_variant_id(rbml_w: &mut Encoder, vid: DefId) {
|
||||
rbml_w.start_tag(tag_items_data_item_variant);
|
||||
let s = def_to_string(vid);
|
||||
rbml_w.writer.write(s.as_bytes());
|
||||
rbml_w.writer.write_all(s.as_bytes());
|
||||
rbml_w.end_tag();
|
||||
|
||||
rbml_w.start_tag(tag_mod_child);
|
||||
|
|
@ -259,7 +259,7 @@ fn encode_symbol(ecx: &EncodeContext,
|
|||
match ecx.item_symbols.borrow().get(&id) {
|
||||
Some(x) => {
|
||||
debug!("encode_symbol(id={}, str={})", id, *x);
|
||||
rbml_w.writer.write(x.as_bytes());
|
||||
rbml_w.writer.write_all(x.as_bytes());
|
||||
}
|
||||
None => {
|
||||
ecx.diag.handler().bug(
|
||||
|
|
@ -274,14 +274,14 @@ fn encode_disr_val(_: &EncodeContext,
|
|||
disr_val: ty::Disr) {
|
||||
rbml_w.start_tag(tag_disr_val);
|
||||
let s = disr_val.to_string();
|
||||
rbml_w.writer.write(s.as_bytes());
|
||||
rbml_w.writer.write_all(s.as_bytes());
|
||||
rbml_w.end_tag();
|
||||
}
|
||||
|
||||
fn encode_parent_item(rbml_w: &mut Encoder, id: DefId) {
|
||||
rbml_w.start_tag(tag_items_data_parent_item);
|
||||
let s = def_to_string(id);
|
||||
rbml_w.writer.write(s.as_bytes());
|
||||
rbml_w.writer.write_all(s.as_bytes());
|
||||
rbml_w.end_tag();
|
||||
}
|
||||
|
||||
|
|
@ -299,7 +299,7 @@ fn encode_struct_fields(rbml_w: &mut Encoder,
|
|||
encode_def_id(rbml_w, f.id);
|
||||
rbml_w.start_tag(tag_item_field_origin);
|
||||
let s = def_to_string(origin);
|
||||
rbml_w.writer.write(s.as_bytes());
|
||||
rbml_w.writer.write_all(s.as_bytes());
|
||||
rbml_w.end_tag();
|
||||
rbml_w.end_tag();
|
||||
}
|
||||
|
|
@ -636,17 +636,17 @@ fn encode_explicit_self(rbml_w: &mut Encoder,
|
|||
// Encode the base self type.
|
||||
match *explicit_self {
|
||||
ty::StaticExplicitSelfCategory => {
|
||||
rbml_w.writer.write(&[ 's' as u8 ]);
|
||||
rbml_w.writer.write_all(&[ 's' as u8 ]);
|
||||
}
|
||||
ty::ByValueExplicitSelfCategory => {
|
||||
rbml_w.writer.write(&[ 'v' as u8 ]);
|
||||
rbml_w.writer.write_all(&[ 'v' as u8 ]);
|
||||
}
|
||||
ty::ByBoxExplicitSelfCategory => {
|
||||
rbml_w.writer.write(&[ '~' as u8 ]);
|
||||
rbml_w.writer.write_all(&[ '~' as u8 ]);
|
||||
}
|
||||
ty::ByReferenceExplicitSelfCategory(_, m) => {
|
||||
// FIXME(#4846) encode custom lifetime
|
||||
rbml_w.writer.write(&['&' as u8]);
|
||||
rbml_w.writer.write_all(&['&' as u8]);
|
||||
encode_mutability(rbml_w, m);
|
||||
}
|
||||
}
|
||||
|
|
@ -656,21 +656,21 @@ fn encode_explicit_self(rbml_w: &mut Encoder,
|
|||
fn encode_mutability(rbml_w: &mut Encoder,
|
||||
m: ast::Mutability) {
|
||||
match m {
|
||||
ast::MutImmutable => { rbml_w.writer.write(&[ 'i' as u8 ]); }
|
||||
ast::MutMutable => { rbml_w.writer.write(&[ 'm' as u8 ]); }
|
||||
ast::MutImmutable => { rbml_w.writer.write_all(&[ 'i' as u8 ]); }
|
||||
ast::MutMutable => { rbml_w.writer.write_all(&[ 'm' as u8 ]); }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn encode_item_sort(rbml_w: &mut Encoder, sort: char) {
|
||||
rbml_w.start_tag(tag_item_trait_item_sort);
|
||||
rbml_w.writer.write(&[ sort as u8 ]);
|
||||
rbml_w.writer.write_all(&[ sort as u8 ]);
|
||||
rbml_w.end_tag();
|
||||
}
|
||||
|
||||
fn encode_parent_sort(rbml_w: &mut Encoder, sort: char) {
|
||||
rbml_w.start_tag(tag_item_trait_parent_sort);
|
||||
rbml_w.writer.write(&[ sort as u8 ]);
|
||||
rbml_w.writer.write_all(&[ sort as u8 ]);
|
||||
rbml_w.end_tag();
|
||||
}
|
||||
|
||||
|
|
@ -679,7 +679,7 @@ fn encode_provided_source(rbml_w: &mut Encoder,
|
|||
for source in source_opt.iter() {
|
||||
rbml_w.start_tag(tag_item_method_provided_source);
|
||||
let s = def_to_string(*source);
|
||||
rbml_w.writer.write(s.as_bytes());
|
||||
rbml_w.writer.write_all(s.as_bytes());
|
||||
rbml_w.end_tag();
|
||||
}
|
||||
}
|
||||
|
|
@ -926,7 +926,7 @@ fn encode_method_argument_names(rbml_w: &mut Encoder,
|
|||
rbml_w.start_tag(tag_method_argument_name);
|
||||
if let ast::PatIdent(_, ref path1, _) = arg.pat.node {
|
||||
let name = token::get_ident(path1.node);
|
||||
rbml_w.writer.write(name.get().as_bytes());
|
||||
rbml_w.writer.write_all(name.get().as_bytes());
|
||||
}
|
||||
rbml_w.end_tag();
|
||||
}
|
||||
|
|
@ -1646,7 +1646,7 @@ fn encode_meta_item(rbml_w: &mut Encoder, mi: &ast::MetaItem) {
|
|||
ast::MetaWord(ref name) => {
|
||||
rbml_w.start_tag(tag_meta_item_word);
|
||||
rbml_w.start_tag(tag_meta_item_name);
|
||||
rbml_w.writer.write(name.get().as_bytes());
|
||||
rbml_w.writer.write_all(name.get().as_bytes());
|
||||
rbml_w.end_tag();
|
||||
rbml_w.end_tag();
|
||||
}
|
||||
|
|
@ -1655,10 +1655,10 @@ fn encode_meta_item(rbml_w: &mut Encoder, mi: &ast::MetaItem) {
|
|||
ast::LitStr(ref value, _) => {
|
||||
rbml_w.start_tag(tag_meta_item_name_value);
|
||||
rbml_w.start_tag(tag_meta_item_name);
|
||||
rbml_w.writer.write(name.get().as_bytes());
|
||||
rbml_w.writer.write_all(name.get().as_bytes());
|
||||
rbml_w.end_tag();
|
||||
rbml_w.start_tag(tag_meta_item_value);
|
||||
rbml_w.writer.write(value.get().as_bytes());
|
||||
rbml_w.writer.write_all(value.get().as_bytes());
|
||||
rbml_w.end_tag();
|
||||
rbml_w.end_tag();
|
||||
}
|
||||
|
|
@ -1668,7 +1668,7 @@ fn encode_meta_item(rbml_w: &mut Encoder, mi: &ast::MetaItem) {
|
|||
ast::MetaList(ref name, ref items) => {
|
||||
rbml_w.start_tag(tag_meta_item_list);
|
||||
rbml_w.start_tag(tag_meta_item_name);
|
||||
rbml_w.writer.write(name.get().as_bytes());
|
||||
rbml_w.writer.write_all(name.get().as_bytes());
|
||||
rbml_w.end_tag();
|
||||
for inner_item in items.iter() {
|
||||
encode_meta_item(rbml_w, &**inner_item);
|
||||
|
|
@ -1800,7 +1800,7 @@ fn encode_native_libraries(ecx: &EncodeContext, rbml_w: &mut Encoder) {
|
|||
rbml_w.end_tag();
|
||||
|
||||
rbml_w.start_tag(tag_native_libraries_name);
|
||||
rbml_w.writer.write(lib.as_bytes());
|
||||
rbml_w.writer.write_all(lib.as_bytes());
|
||||
rbml_w.end_tag();
|
||||
|
||||
rbml_w.end_tag();
|
||||
|
|
@ -1975,29 +1975,29 @@ fn encode_crate_dep(rbml_w: &mut Encoder,
|
|||
dep: decoder::CrateDep) {
|
||||
rbml_w.start_tag(tag_crate_dep);
|
||||
rbml_w.start_tag(tag_crate_dep_crate_name);
|
||||
rbml_w.writer.write(dep.name.as_bytes());
|
||||
rbml_w.writer.write_all(dep.name.as_bytes());
|
||||
rbml_w.end_tag();
|
||||
rbml_w.start_tag(tag_crate_dep_hash);
|
||||
rbml_w.writer.write(dep.hash.as_str().as_bytes());
|
||||
rbml_w.writer.write_all(dep.hash.as_str().as_bytes());
|
||||
rbml_w.end_tag();
|
||||
rbml_w.end_tag();
|
||||
}
|
||||
|
||||
fn encode_hash(rbml_w: &mut Encoder, hash: &Svh) {
|
||||
rbml_w.start_tag(tag_crate_hash);
|
||||
rbml_w.writer.write(hash.as_str().as_bytes());
|
||||
rbml_w.writer.write_all(hash.as_str().as_bytes());
|
||||
rbml_w.end_tag();
|
||||
}
|
||||
|
||||
fn encode_crate_name(rbml_w: &mut Encoder, crate_name: &str) {
|
||||
rbml_w.start_tag(tag_crate_crate_name);
|
||||
rbml_w.writer.write(crate_name.as_bytes());
|
||||
rbml_w.writer.write_all(crate_name.as_bytes());
|
||||
rbml_w.end_tag();
|
||||
}
|
||||
|
||||
fn encode_crate_triple(rbml_w: &mut Encoder, triple: &str) {
|
||||
rbml_w.start_tag(tag_crate_triple);
|
||||
rbml_w.writer.write(triple.as_bytes());
|
||||
rbml_w.writer.write_all(triple.as_bytes());
|
||||
rbml_w.end_tag();
|
||||
}
|
||||
|
||||
|
|
@ -2011,7 +2011,7 @@ fn encode_dylib_dependency_formats(rbml_w: &mut Encoder, ecx: &EncodeContext) {
|
|||
cstore::RequireStatic => "s",
|
||||
})).to_string())
|
||||
}).collect::<Vec<String>>();
|
||||
rbml_w.writer.write(s.connect(",").as_bytes());
|
||||
rbml_w.writer.write_all(s.connect(",").as_bytes());
|
||||
}
|
||||
None => {}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@
|
|||
pub use self::FileMatch::*;
|
||||
|
||||
use std::collections::HashSet;
|
||||
use std::io::fs::PathExtensions;
|
||||
use std::io::fs;
|
||||
use std::old_io::fs::PathExtensions;
|
||||
use std::old_io::fs;
|
||||
use std::os;
|
||||
|
||||
use util::fs as myfs;
|
||||
|
|
|
|||
|
|
@ -231,8 +231,8 @@ use rustc_back::target::Target;
|
|||
use std::ffi::CString;
|
||||
use std::cmp;
|
||||
use std::collections::HashMap;
|
||||
use std::io::fs::PathExtensions;
|
||||
use std::io;
|
||||
use std::old_io::fs::PathExtensions;
|
||||
use std::old_io;
|
||||
use std::ptr;
|
||||
use std::slice;
|
||||
use std::time::Duration;
|
||||
|
|
@ -796,7 +796,7 @@ pub fn read_meta_section_name(is_osx: bool) -> &'static str {
|
|||
|
||||
// A diagnostic function for dumping crate metadata to an output stream
|
||||
pub fn list_file_metadata(is_osx: bool, path: &Path,
|
||||
out: &mut io::Writer) -> io::IoResult<()> {
|
||||
out: &mut old_io::Writer) -> old_io::IoResult<()> {
|
||||
match get_metadata_section(is_osx, path) {
|
||||
Ok(bytes) => decoder::list_crate_metadata(bytes.as_slice(), out),
|
||||
Err(msg) => {
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ pub type abbrev_map<'tcx> = RefCell<FnvHashMap<Ty<'tcx>, ty_abbrev>>;
|
|||
|
||||
pub fn enc_ty<'a, 'tcx>(w: &mut SeekableMemWriter, cx: &ctxt<'a, 'tcx>, t: Ty<'tcx>) {
|
||||
match cx.abbrevs.borrow_mut().get(&t) {
|
||||
Some(a) => { w.write(a.s.as_bytes()); return; }
|
||||
Some(a) => { w.write_all(a.s.as_bytes()); return; }
|
||||
None => {}
|
||||
}
|
||||
let pos = w.tell().unwrap();
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ use syntax::parse::token;
|
|||
use syntax::ptr::P;
|
||||
use syntax;
|
||||
|
||||
use std::io::Seek;
|
||||
use std::old_io::Seek;
|
||||
use std::rc::Rc;
|
||||
|
||||
use rbml::io::SeekableMemWriter;
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ pub use self::EntryOrExit::*;
|
|||
use middle::cfg;
|
||||
use middle::cfg::CFGIndex;
|
||||
use middle::ty;
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
use std::uint;
|
||||
use std::iter::repeat;
|
||||
use syntax::ast;
|
||||
|
|
@ -105,7 +105,7 @@ impl<'a, 'tcx, O:DataFlowOperator> DataFlowContext<'a, 'tcx, O> {
|
|||
impl<'a, 'tcx, O:DataFlowOperator> pprust::PpAnn for DataFlowContext<'a, 'tcx, O> {
|
||||
fn pre(&self,
|
||||
ps: &mut pprust::State,
|
||||
node: pprust::AnnNode) -> io::IoResult<()> {
|
||||
node: pprust::AnnNode) -> old_io::IoResult<()> {
|
||||
let id = match node {
|
||||
pprust::NodeIdent(_) | pprust::NodeName(_) => 0,
|
||||
pprust::NodeExpr(expr) => expr.id,
|
||||
|
|
@ -457,13 +457,13 @@ impl<'a, 'tcx, O:DataFlowOperator+Clone+'static> DataFlowContext<'a, 'tcx, O> {
|
|||
|
||||
debug!("Dataflow result for {}:", self.analysis_name);
|
||||
debug!("{}", {
|
||||
self.pretty_print_to(box io::stderr(), blk).unwrap();
|
||||
self.pretty_print_to(box old_io::stderr(), blk).unwrap();
|
||||
""
|
||||
});
|
||||
}
|
||||
|
||||
fn pretty_print_to(&self, wr: Box<io::Writer+'static>,
|
||||
blk: &ast::Block) -> io::IoResult<()> {
|
||||
fn pretty_print_to(&self, wr: Box<old_io::Writer+'static>,
|
||||
blk: &ast::Block) -> old_io::IoResult<()> {
|
||||
let mut ps = pprust::rust_printer_annotated(wr, self);
|
||||
try!(ps.cbox(pprust::indent_unit));
|
||||
try!(ps.ibox(0u));
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ use util::nodemap::{FnvHashMap, FnvHashSet};
|
|||
use util::ppaux::Repr;
|
||||
|
||||
use std::collections::hash_map::Entry::Vacant;
|
||||
use std::io::{self, File};
|
||||
use std::old_io::{self, File};
|
||||
use std::os;
|
||||
use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
|
||||
use syntax::ast;
|
||||
|
|
@ -217,7 +217,7 @@ pub type ConstraintMap<'tcx> = FnvHashMap<Constraint, SubregionOrigin<'tcx>>;
|
|||
|
||||
fn dump_region_constraints_to<'a, 'tcx:'a >(tcx: &'a ty::ctxt<'tcx>,
|
||||
map: &ConstraintMap<'tcx>,
|
||||
path: &str) -> io::IoResult<()> {
|
||||
path: &str) -> old_io::IoResult<()> {
|
||||
debug!("dump_region_constraints map (len: {}) path: {}", map.len(), path);
|
||||
let g = ConstraintGraph::new(tcx, format!("region_constraints"), map);
|
||||
let mut f = File::create(&Path::new(path));
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ use middle::ty::ClosureTyper;
|
|||
use lint;
|
||||
use util::nodemap::NodeMap;
|
||||
|
||||
use std::{fmt, io, uint};
|
||||
use std::{fmt, old_io, uint};
|
||||
use std::rc::Rc;
|
||||
use std::iter::repeat;
|
||||
use syntax::ast::{self, NodeId, Expr};
|
||||
|
|
@ -693,10 +693,10 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
|
|||
}
|
||||
|
||||
fn write_vars<F>(&self,
|
||||
wr: &mut io::Writer,
|
||||
wr: &mut old_io::Writer,
|
||||
ln: LiveNode,
|
||||
mut test: F)
|
||||
-> io::IoResult<()> where
|
||||
-> old_io::IoResult<()> where
|
||||
F: FnMut(uint) -> LiveNode,
|
||||
{
|
||||
let node_base_idx = self.idx(ln, Variable(0));
|
||||
|
|
@ -740,7 +740,7 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
|
|||
fn ln_str(&self, ln: LiveNode) -> String {
|
||||
let mut wr = Vec::new();
|
||||
{
|
||||
let wr = &mut wr as &mut io::Writer;
|
||||
let wr = &mut wr as &mut old_io::Writer;
|
||||
write!(wr, "[ln({:?}) of kind {:?} reads", ln.get(), self.ir.lnk(ln));
|
||||
self.write_vars(wr, ln, |idx| self.users[idx].reader);
|
||||
write!(wr, " writes");
|
||||
|
|
|
|||
|
|
@ -10,10 +10,10 @@
|
|||
|
||||
//! A helper class for dealing with static archives
|
||||
|
||||
use std::io::fs::PathExtensions;
|
||||
use std::io::process::{Command, ProcessOutput};
|
||||
use std::io::{fs, TempDir};
|
||||
use std::io;
|
||||
use std::old_io::fs::PathExtensions;
|
||||
use std::old_io::process::{Command, ProcessOutput};
|
||||
use std::old_io::{fs, TempDir};
|
||||
use std::old_io;
|
||||
use std::os;
|
||||
use std::str;
|
||||
use syntax::diagnostic::Handler as ErrorHandler;
|
||||
|
|
@ -172,7 +172,7 @@ impl<'a> ArchiveBuilder<'a> {
|
|||
|
||||
/// Adds all of the contents of a native library to this archive. This will
|
||||
/// search in the relevant locations for a library named `name`.
|
||||
pub fn add_native_library(&mut self, name: &str) -> io::IoResult<()> {
|
||||
pub fn add_native_library(&mut self, name: &str) -> old_io::IoResult<()> {
|
||||
let location = find_library(name,
|
||||
&self.archive.slib_prefix[],
|
||||
&self.archive.slib_suffix[],
|
||||
|
|
@ -187,7 +187,7 @@ impl<'a> ArchiveBuilder<'a> {
|
|||
/// This ignores adding the bytecode from the rlib, and if LTO is enabled
|
||||
/// then the object file also isn't added.
|
||||
pub fn add_rlib(&mut self, rlib: &Path, name: &str,
|
||||
lto: bool) -> io::IoResult<()> {
|
||||
lto: bool) -> old_io::IoResult<()> {
|
||||
// Ignoring obj file starting with the crate name
|
||||
// as simple comparison is not enough - there
|
||||
// might be also an extra name suffix
|
||||
|
|
@ -205,7 +205,7 @@ impl<'a> ArchiveBuilder<'a> {
|
|||
}
|
||||
|
||||
/// Adds an arbitrary file to this archive
|
||||
pub fn add_file(&mut self, file: &Path) -> io::IoResult<()> {
|
||||
pub fn add_file(&mut self, file: &Path) -> old_io::IoResult<()> {
|
||||
let filename = Path::new(file.filename().unwrap());
|
||||
let new_file = self.work_dir.path().join(&filename);
|
||||
try!(fs::copy(file, &new_file));
|
||||
|
|
@ -274,8 +274,9 @@ impl<'a> ArchiveBuilder<'a> {
|
|||
self.archive
|
||||
}
|
||||
|
||||
fn add_archive<F>(&mut self, archive: &Path, name: &str, mut skip: F) -> io::IoResult<()> where
|
||||
F: FnMut(&str) -> bool,
|
||||
fn add_archive<F>(&mut self, archive: &Path, name: &str,
|
||||
mut skip: F) -> old_io::IoResult<()>
|
||||
where F: FnMut(&str) -> bool,
|
||||
{
|
||||
let loc = TempDir::new("rsar").unwrap();
|
||||
|
||||
|
|
|
|||
|
|
@ -8,13 +8,13 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
use std::io;
|
||||
use std::io::fs;
|
||||
use std::old_io;
|
||||
use std::old_io::fs;
|
||||
use std::os;
|
||||
|
||||
/// Returns an absolute path in the filesystem that `path` points to. The
|
||||
/// returned path does not contain any symlinks in its hierarchy.
|
||||
pub fn realpath(original: &Path) -> io::IoResult<Path> {
|
||||
pub fn realpath(original: &Path) -> old_io::IoResult<Path> {
|
||||
static MAX_LINKS_FOLLOWED: uint = 256;
|
||||
let original = os::make_absolute(original).unwrap();
|
||||
|
||||
|
|
@ -32,12 +32,12 @@ pub fn realpath(original: &Path) -> io::IoResult<Path> {
|
|||
|
||||
loop {
|
||||
if followed == MAX_LINKS_FOLLOWED {
|
||||
return Err(io::standard_error(io::InvalidInput))
|
||||
return Err(old_io::standard_error(old_io::InvalidInput))
|
||||
}
|
||||
|
||||
match fs::lstat(&result) {
|
||||
Err(..) => break,
|
||||
Ok(ref stat) if stat.kind != io::FileType::Symlink => break,
|
||||
Ok(ref stat) if stat.kind != old_io::FileType::Symlink => break,
|
||||
Ok(..) => {
|
||||
followed += 1;
|
||||
let path = try!(fs::readlink(&result));
|
||||
|
|
@ -53,10 +53,10 @@ pub fn realpath(original: &Path) -> io::IoResult<Path> {
|
|||
|
||||
#[cfg(all(not(windows), test))]
|
||||
mod test {
|
||||
use std::io;
|
||||
use std::io::fs::{File, symlink, mkdir, mkdir_recursive};
|
||||
use std::old_io;
|
||||
use std::old_io::fs::{File, symlink, mkdir, mkdir_recursive};
|
||||
use super::realpath;
|
||||
use std::io::TempDir;
|
||||
use std::old_io::TempDir;
|
||||
|
||||
#[test]
|
||||
fn realpath_works() {
|
||||
|
|
@ -68,7 +68,7 @@ mod test {
|
|||
let linkdir = tmpdir.join("test3");
|
||||
|
||||
File::create(&file).unwrap();
|
||||
mkdir(&dir, io::USER_RWX).unwrap();
|
||||
mkdir(&dir, old_io::USER_RWX).unwrap();
|
||||
symlink(&file, &link).unwrap();
|
||||
symlink(&dir, &linkdir).unwrap();
|
||||
|
||||
|
|
@ -91,8 +91,8 @@ mod test {
|
|||
let e = d.join("e");
|
||||
let f = a.join("f");
|
||||
|
||||
mkdir_recursive(&b, io::USER_RWX).unwrap();
|
||||
mkdir_recursive(&d, io::USER_RWX).unwrap();
|
||||
mkdir_recursive(&b, old_io::USER_RWX).unwrap();
|
||||
mkdir_recursive(&d, old_io::USER_RWX).unwrap();
|
||||
File::create(&f).unwrap();
|
||||
symlink(&Path::new("../d/e"), &c).unwrap();
|
||||
symlink(&Path::new("../f"), &e).unwrap();
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
use std::collections::HashSet;
|
||||
use std::os;
|
||||
use std::io::IoError;
|
||||
use std::old_io::IoError;
|
||||
use syntax::ast;
|
||||
|
||||
pub struct RPathConfig<F, G> where
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
use std::io::{Command, IoError, OtherIoError};
|
||||
use std::old_io::{Command, IoError, OtherIoError};
|
||||
use target::TargetOptions;
|
||||
|
||||
use self::Arch::*;
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@
|
|||
use serialize::json::Json;
|
||||
use syntax::{diagnostic, abi};
|
||||
use std::default::Default;
|
||||
use std::io::fs::PathExtensions;
|
||||
use std::old_io::fs::PathExtensions;
|
||||
|
||||
mod windows_base;
|
||||
mod linux_base;
|
||||
|
|
@ -302,7 +302,7 @@ impl Target {
|
|||
/// JSON decoding.
|
||||
pub fn search(target: &str) -> Result<Target, String> {
|
||||
use std::os;
|
||||
use std::io::File;
|
||||
use std::old_io::File;
|
||||
use std::path::Path;
|
||||
use serialize::json;
|
||||
|
||||
|
|
|
|||
|
|
@ -30,8 +30,8 @@ use rustc_privacy;
|
|||
|
||||
use serialize::json;
|
||||
|
||||
use std::io;
|
||||
use std::io::fs;
|
||||
use std::old_io;
|
||||
use std::old_io::fs;
|
||||
use std::os;
|
||||
use syntax::ast;
|
||||
use syntax::ast_map;
|
||||
|
|
@ -787,14 +787,14 @@ fn write_out_deps(sess: &Session,
|
|||
_ => return,
|
||||
};
|
||||
|
||||
let result = (|&:| -> io::IoResult<()> {
|
||||
let result = (|&:| -> old_io::IoResult<()> {
|
||||
// Build a list of files used to compile the output and
|
||||
// write Makefile-compatible dependency rules
|
||||
let files: Vec<String> = sess.codemap().files.borrow()
|
||||
.iter().filter(|fmap| fmap.is_real_file())
|
||||
.map(|fmap| escape_dep_filename(&fmap.name[]))
|
||||
.collect();
|
||||
let mut file = try!(io::File::create(&deps_filename));
|
||||
let mut file = try!(old_io::File::create(&deps_filename));
|
||||
for path in out_filenames.iter() {
|
||||
try!(write!(&mut file as &mut Writer,
|
||||
"{}: {}\n\n", path.display(), files.connect(" ")));
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ use rustc::metadata::creader::CrateOrString::Str;
|
|||
use rustc::util::common::time;
|
||||
|
||||
use std::cmp::Ordering::Equal;
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
use std::iter::repeat;
|
||||
use std::os;
|
||||
use std::sync::mpsc::channel;
|
||||
|
|
@ -133,7 +133,7 @@ fn run_compiler(args: &[String]) {
|
|||
1u => {
|
||||
let ifile = &matches.free[0][];
|
||||
if ifile == "-" {
|
||||
let contents = io::stdin().read_to_end().unwrap();
|
||||
let contents = old_io::stdin().read_to_end().unwrap();
|
||||
let src = String::from_utf8(contents).unwrap();
|
||||
(Input::Str(src), None)
|
||||
} else {
|
||||
|
|
@ -187,7 +187,7 @@ fn run_compiler(args: &[String]) {
|
|||
if r.contains(&("ls".to_string())) {
|
||||
match input {
|
||||
Input::File(ref ifile) => {
|
||||
let mut stdout = io::stdout();
|
||||
let mut stdout = old_io::stdout();
|
||||
list_metadata(&sess, &(*ifile), &mut stdout).unwrap();
|
||||
}
|
||||
Input::Str(_) => {
|
||||
|
|
@ -590,7 +590,7 @@ fn parse_crate_attrs(sess: &Session, input: &Input) ->
|
|||
}
|
||||
|
||||
pub fn list_metadata(sess: &Session, path: &Path,
|
||||
out: &mut io::Writer) -> io::IoResult<()> {
|
||||
out: &mut old_io::Writer) -> old_io::IoResult<()> {
|
||||
metadata::loader::list_file_metadata(sess.target.target.options.is_like_osx, path, out)
|
||||
}
|
||||
|
||||
|
|
@ -603,8 +603,8 @@ pub fn monitor<F:FnOnce()+Send>(f: F) {
|
|||
static STACK_SIZE: uint = 8 * 1024 * 1024; // 8MB
|
||||
|
||||
let (tx, rx) = channel();
|
||||
let w = io::ChanWriter::new(tx);
|
||||
let mut r = io::ChanReader::new(rx);
|
||||
let w = old_io::ChanWriter::new(tx);
|
||||
let mut r = old_io::ChanReader::new(rx);
|
||||
|
||||
let mut cfg = thread::Builder::new().name("rustc".to_string());
|
||||
|
||||
|
|
@ -614,7 +614,7 @@ pub fn monitor<F:FnOnce()+Send>(f: F) {
|
|||
cfg = cfg.stack_size(STACK_SIZE);
|
||||
}
|
||||
|
||||
match cfg.scoped(move || { std::io::stdio::set_stderr(box w); f() }).join() {
|
||||
match cfg.scoped(move || { std::old_io::stdio::set_stderr(box w); f() }).join() {
|
||||
Ok(()) => { /* fallthrough */ }
|
||||
Err(value) => {
|
||||
// Thread panicked without emitting a fatal diagnostic
|
||||
|
|
@ -656,7 +656,7 @@ pub fn monitor<F:FnOnce()+Send>(f: F) {
|
|||
// Panic so the process returns a failure code, but don't pollute the
|
||||
// output with some unnecessary panic messages, we've already
|
||||
// printed everything that we needed to.
|
||||
io::stdio::set_stderr(box io::util::NullWriter);
|
||||
old_io::stdio::set_stderr(box old_io::util::NullWriter);
|
||||
panic!();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ use syntax::ptr::P;
|
|||
|
||||
use graphviz as dot;
|
||||
|
||||
use std::io::{self, MemReader};
|
||||
use std::old_io::{self, MemReader};
|
||||
use std::option;
|
||||
use std::str::FromStr;
|
||||
|
||||
|
|
@ -208,7 +208,7 @@ impl<'ast> PrinterSupport<'ast> for IdentifiedAnnotation<'ast> {
|
|||
impl<'ast> pprust::PpAnn for IdentifiedAnnotation<'ast> {
|
||||
fn pre(&self,
|
||||
s: &mut pprust::State,
|
||||
node: pprust::AnnNode) -> io::IoResult<()> {
|
||||
node: pprust::AnnNode) -> old_io::IoResult<()> {
|
||||
match node {
|
||||
pprust::NodeExpr(_) => s.popen(),
|
||||
_ => Ok(())
|
||||
|
|
@ -216,7 +216,7 @@ impl<'ast> pprust::PpAnn for IdentifiedAnnotation<'ast> {
|
|||
}
|
||||
fn post(&self,
|
||||
s: &mut pprust::State,
|
||||
node: pprust::AnnNode) -> io::IoResult<()> {
|
||||
node: pprust::AnnNode) -> old_io::IoResult<()> {
|
||||
match node {
|
||||
pprust::NodeIdent(_) | pprust::NodeName(_) => Ok(()),
|
||||
|
||||
|
|
@ -259,7 +259,7 @@ impl<'ast> PrinterSupport<'ast> for HygieneAnnotation<'ast> {
|
|||
impl<'ast> pprust::PpAnn for HygieneAnnotation<'ast> {
|
||||
fn post(&self,
|
||||
s: &mut pprust::State,
|
||||
node: pprust::AnnNode) -> io::IoResult<()> {
|
||||
node: pprust::AnnNode) -> old_io::IoResult<()> {
|
||||
match node {
|
||||
pprust::NodeIdent(&ast::Ident { name: ast::Name(nm), ctxt }) => {
|
||||
try!(pp::space(&mut s.s));
|
||||
|
|
@ -294,7 +294,7 @@ impl<'tcx> PrinterSupport<'tcx> for TypedAnnotation<'tcx> {
|
|||
impl<'tcx> pprust::PpAnn for TypedAnnotation<'tcx> {
|
||||
fn pre(&self,
|
||||
s: &mut pprust::State,
|
||||
node: pprust::AnnNode) -> io::IoResult<()> {
|
||||
node: pprust::AnnNode) -> old_io::IoResult<()> {
|
||||
match node {
|
||||
pprust::NodeExpr(_) => s.popen(),
|
||||
_ => Ok(())
|
||||
|
|
@ -302,7 +302,7 @@ impl<'tcx> pprust::PpAnn for TypedAnnotation<'tcx> {
|
|||
}
|
||||
fn post(&self,
|
||||
s: &mut pprust::State,
|
||||
node: pprust::AnnNode) -> io::IoResult<()> {
|
||||
node: pprust::AnnNode) -> old_io::IoResult<()> {
|
||||
let tcx = &self.analysis.ty_cx;
|
||||
match node {
|
||||
pprust::NodeExpr(expr) => {
|
||||
|
|
@ -548,9 +548,9 @@ pub fn pretty_print_input(sess: Session,
|
|||
let mut rdr = MemReader::new(src);
|
||||
|
||||
let out = match ofile {
|
||||
None => box io::stdout() as Box<Writer+'static>,
|
||||
None => box old_io::stdout() as Box<Writer+'static>,
|
||||
Some(p) => {
|
||||
let r = io::File::create(&p);
|
||||
let r = old_io::File::create(&p);
|
||||
match r {
|
||||
Ok(w) => box w as Box<Writer+'static>,
|
||||
Err(e) => panic!("print-print failed to open {} due to {}",
|
||||
|
|
@ -643,11 +643,11 @@ pub fn pretty_print_input(sess: Session,
|
|||
}.unwrap()
|
||||
}
|
||||
|
||||
fn print_flowgraph<W:io::Writer>(variants: Vec<borrowck_dot::Variant>,
|
||||
fn print_flowgraph<W:old_io::Writer>(variants: Vec<borrowck_dot::Variant>,
|
||||
analysis: ty::CrateAnalysis,
|
||||
code: blocks::Code,
|
||||
mode: PpFlowGraphMode,
|
||||
mut out: W) -> io::IoResult<()> {
|
||||
mut out: W) -> old_io::IoResult<()> {
|
||||
let ty_cx = &analysis.ty_cx;
|
||||
let cfg = match code {
|
||||
blocks::BlockCode(block) => cfg::CFG::new(ty_cx, &*block),
|
||||
|
|
@ -687,11 +687,11 @@ fn print_flowgraph<W:io::Writer>(variants: Vec<borrowck_dot::Variant>,
|
|||
}
|
||||
}
|
||||
|
||||
fn expand_err_details(r: io::IoResult<()>) -> io::IoResult<()> {
|
||||
fn expand_err_details(r: old_io::IoResult<()>) -> old_io::IoResult<()> {
|
||||
r.map_err(|ioerr| {
|
||||
let orig_detail = ioerr.detail.clone();
|
||||
let m = "graphviz::render failed";
|
||||
io::IoError {
|
||||
old_io::IoError {
|
||||
detail: Some(match orig_detail {
|
||||
None => m.to_string(),
|
||||
Some(d) => format!("{}: {}", m, d)
|
||||
|
|
|
|||
|
|
@ -27,9 +27,9 @@ use util::common::time;
|
|||
use util::ppaux;
|
||||
use util::sha2::{Digest, Sha256};
|
||||
|
||||
use std::io::fs::PathExtensions;
|
||||
use std::io::{fs, TempDir, Command};
|
||||
use std::io;
|
||||
use std::old_io::fs::PathExtensions;
|
||||
use std::old_io::{fs, TempDir, Command};
|
||||
use std::old_io;
|
||||
use std::mem;
|
||||
use std::str;
|
||||
use std::string::String;
|
||||
|
|
@ -425,7 +425,7 @@ pub fn invalid_output_for_target(sess: &Session,
|
|||
fn is_writeable(p: &Path) -> bool {
|
||||
match p.stat() {
|
||||
Err(..) => true,
|
||||
Ok(m) => m.perm & io::USER_WRITE == io::USER_WRITE
|
||||
Ok(m) => m.perm & old_io::USER_WRITE == old_io::USER_WRITE
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -586,8 +586,7 @@ fn link_rlib<'a>(sess: &'a Session,
|
|||
// the same filename for metadata (stomping over one another)
|
||||
let tmpdir = TempDir::new("rustc").ok().expect("needs a temp dir");
|
||||
let metadata = tmpdir.path().join(METADATA_FILENAME);
|
||||
match fs::File::create(&metadata).write(&trans.metadata
|
||||
[]) {
|
||||
match fs::File::create(&metadata).write_all(&trans.metadata[]) {
|
||||
Ok(..) => {}
|
||||
Err(e) => {
|
||||
sess.err(&format!("failed to write {}: {}",
|
||||
|
|
@ -671,13 +670,13 @@ fn link_rlib<'a>(sess: &'a Session,
|
|||
|
||||
fn write_rlib_bytecode_object_v1<T: Writer>(writer: &mut T,
|
||||
bc_data_deflated: &[u8])
|
||||
-> ::std::io::IoResult<()> {
|
||||
-> ::std::old_io::IoResult<()> {
|
||||
let bc_data_deflated_size: u64 = bc_data_deflated.len() as u64;
|
||||
|
||||
try! { writer.write(RLIB_BYTECODE_OBJECT_MAGIC) };
|
||||
try! { writer.write_all(RLIB_BYTECODE_OBJECT_MAGIC) };
|
||||
try! { writer.write_le_u32(1) };
|
||||
try! { writer.write_le_u64(bc_data_deflated_size) };
|
||||
try! { writer.write(&bc_data_deflated[]) };
|
||||
try! { writer.write_all(&bc_data_deflated[]) };
|
||||
|
||||
let number_of_bytes_written_so_far =
|
||||
RLIB_BYTECODE_OBJECT_MAGIC.len() + // magic id
|
||||
|
|
@ -1201,7 +1200,7 @@ fn add_upstream_rust_crates(cmd: &mut Command, sess: &Session,
|
|||
// Fix up permissions of the copy, as fs::copy() preserves
|
||||
// permissions, but the original file may have been installed
|
||||
// by a package manager and may be read-only.
|
||||
match fs::chmod(&dst, io::USER_READ | io::USER_WRITE) {
|
||||
match fs::chmod(&dst, old_io::USER_READ | old_io::USER_WRITE) {
|
||||
Ok(..) => {}
|
||||
Err(e) => {
|
||||
sess.err(&format!("failed to chmod {} when preparing \
|
||||
|
|
|
|||
|
|
@ -23,8 +23,8 @@ use syntax::diagnostic;
|
|||
use syntax::diagnostic::{Emitter, Handler, Level, mk_handler};
|
||||
|
||||
use std::ffi::{self, CString};
|
||||
use std::io::Command;
|
||||
use std::io::fs;
|
||||
use std::old_io::Command;
|
||||
use std::old_io::fs;
|
||||
use std::iter::Unfold;
|
||||
use std::ptr;
|
||||
use std::str;
|
||||
|
|
@ -728,9 +728,9 @@ pub fn run_passes(sess: &Session,
|
|||
println!("{:?}", &cmd);
|
||||
}
|
||||
|
||||
cmd.stdin(::std::io::process::Ignored)
|
||||
.stdout(::std::io::process::InheritFd(1))
|
||||
.stderr(::std::io::process::InheritFd(2));
|
||||
cmd.stdin(::std::old_io::process::Ignored)
|
||||
.stdout(::std::old_io::process::InheritFd(1))
|
||||
.stderr(::std::old_io::process::InheritFd(2));
|
||||
match cmd.status() {
|
||||
Ok(status) => {
|
||||
if !status.success() {
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ use middle::def;
|
|||
use middle::ty::{self, Ty};
|
||||
|
||||
use std::cell::Cell;
|
||||
use std::io::{self, File, fs};
|
||||
use std::old_io::{self, File, fs};
|
||||
use std::os;
|
||||
|
||||
use syntax::ast_util::{self, PostExpansionMethod};
|
||||
|
|
@ -1532,7 +1532,7 @@ pub fn process_crate(sess: &Session,
|
|||
},
|
||||
};
|
||||
|
||||
match fs::mkdir_recursive(&root_path, io::USER_RWX) {
|
||||
match fs::mkdir_recursive(&root_path, old_io::USER_RWX) {
|
||||
Err(e) => sess.err(&format!("Could not create directory {}: {}",
|
||||
root_path.display(), e)[]),
|
||||
_ => (),
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
use std::{io, str};
|
||||
use std::{old_io, str};
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct ExternalHtml{
|
||||
|
|
@ -33,8 +33,8 @@ impl ExternalHtml {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn load_string(input: &Path) -> io::IoResult<Option<String>> {
|
||||
let mut f = try!(io::File::open(input));
|
||||
pub fn load_string(input: &Path) -> old_io::IoResult<Option<String>> {
|
||||
let mut f = try!(old_io::File::open(input));
|
||||
let d = try!(f.read_to_end());
|
||||
Ok(str::from_utf8(d.as_slice()).map(|s| s.to_string()).ok())
|
||||
}
|
||||
|
|
@ -45,12 +45,12 @@ macro_rules! load_or_return {
|
|||
let input = Path::new($input);
|
||||
match ::externalfiles::load_string(&input) {
|
||||
Err(e) => {
|
||||
let _ = writeln!(&mut io::stderr(),
|
||||
let _ = writeln!(&mut old_io::stderr(),
|
||||
"error reading `{}`: {}", input.display(), e);
|
||||
return $cant_read;
|
||||
}
|
||||
Ok(None) => {
|
||||
let _ = writeln!(&mut io::stderr(),
|
||||
let _ = writeln!(&mut old_io::stderr(),
|
||||
"error reading `{}`: not UTF-8", input.display());
|
||||
return $not_utf8;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
use html::escape::Escape;
|
||||
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
use syntax::parse::lexer;
|
||||
use syntax::parse::token;
|
||||
use syntax::parse;
|
||||
|
|
@ -46,7 +46,7 @@ pub fn highlight(src: &str, class: Option<&str>, id: Option<&str>) -> String {
|
|||
/// source.
|
||||
fn doit(sess: &parse::ParseSess, mut lexer: lexer::StringReader,
|
||||
class: Option<&str>, id: Option<&str>,
|
||||
out: &mut Writer) -> io::IoResult<()> {
|
||||
out: &mut Writer) -> old_io::IoResult<()> {
|
||||
use syntax::parse::lexer::Reader;
|
||||
|
||||
try!(write!(out, "<pre "));
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
// except according to those terms.
|
||||
|
||||
use std::fmt;
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
|
||||
use externalfiles::ExternalHtml;
|
||||
|
||||
|
|
@ -31,8 +31,8 @@ pub struct Page<'a> {
|
|||
}
|
||||
|
||||
pub fn render<T: fmt::Display, S: fmt::Display>(
|
||||
dst: &mut io::Writer, layout: &Layout, page: &Page, sidebar: &S, t: &T)
|
||||
-> io::IoResult<()>
|
||||
dst: &mut old_io::Writer, layout: &Layout, page: &Page, sidebar: &S, t: &T)
|
||||
-> old_io::IoResult<()>
|
||||
{
|
||||
write!(dst,
|
||||
r##"<!DOCTYPE html>
|
||||
|
|
@ -159,7 +159,7 @@ r##"<!DOCTYPE html>
|
|||
)
|
||||
}
|
||||
|
||||
pub fn redirect(dst: &mut io::Writer, url: &str) -> io::IoResult<()> {
|
||||
pub fn redirect(dst: &mut old_io::Writer, url: &str) -> old_io::IoResult<()> {
|
||||
// <script> triggers a redirect before refresh, so this is fine.
|
||||
write!(dst,
|
||||
r##"<!DOCTYPE html>
|
||||
|
|
|
|||
|
|
@ -39,9 +39,9 @@ use std::cmp::Ordering;
|
|||
use std::collections::{HashMap, HashSet};
|
||||
use std::default::Default;
|
||||
use std::fmt;
|
||||
use std::io::fs::PathExtensions;
|
||||
use std::io::{fs, File, BufferedWriter, BufferedReader};
|
||||
use std::io;
|
||||
use std::old_io::fs::PathExtensions;
|
||||
use std::old_io::{fs, File, BufferedWriter, BufferedReader};
|
||||
use std::old_io;
|
||||
use std::iter::repeat;
|
||||
use std::str;
|
||||
use std::sync::Arc;
|
||||
|
|
@ -257,7 +257,7 @@ thread_local!(pub static CURRENT_LOCATION_KEY: RefCell<Vec<String>> =
|
|||
pub fn run(mut krate: clean::Crate,
|
||||
external_html: &ExternalHtml,
|
||||
dst: Path,
|
||||
passes: HashSet<String>) -> io::IoResult<()> {
|
||||
passes: HashSet<String>) -> old_io::IoResult<()> {
|
||||
let mut cx = Context {
|
||||
dst: dst,
|
||||
src_root: krate.src.dir_path(),
|
||||
|
|
@ -391,7 +391,7 @@ pub fn run(mut krate: clean::Crate,
|
|||
cx.krate(krate, summary)
|
||||
}
|
||||
|
||||
fn build_index(krate: &clean::Crate, cache: &mut Cache) -> io::IoResult<String> {
|
||||
fn build_index(krate: &clean::Crate, cache: &mut Cache) -> old_io::IoResult<String> {
|
||||
// Build the search index from the collected metadata
|
||||
let mut nodeid_to_pathid = HashMap::new();
|
||||
let mut pathid_to_nodeid = Vec::new();
|
||||
|
|
@ -485,7 +485,7 @@ fn build_index(krate: &clean::Crate, cache: &mut Cache) -> io::IoResult<String>
|
|||
fn write_shared(cx: &Context,
|
||||
krate: &clean::Crate,
|
||||
cache: &Cache,
|
||||
search_index: String) -> io::IoResult<()> {
|
||||
search_index: String) -> old_io::IoResult<()> {
|
||||
// Write out the shared files. Note that these are shared among all rustdoc
|
||||
// docs placed in the output directory, so this needs to be a synchronized
|
||||
// operation with respect to all other rustdocs running around.
|
||||
|
|
@ -517,7 +517,7 @@ fn write_shared(cx: &Context,
|
|||
include_bytes!("static/SourceCodePro-Semibold.woff")));
|
||||
|
||||
fn collect(path: &Path, krate: &str,
|
||||
key: &str) -> io::IoResult<Vec<String>> {
|
||||
key: &str) -> old_io::IoResult<Vec<String>> {
|
||||
let mut ret = Vec::new();
|
||||
if path.exists() {
|
||||
for line in BufferedReader::new(File::open(path)).lines() {
|
||||
|
|
@ -607,7 +607,7 @@ fn write_shared(cx: &Context,
|
|||
}
|
||||
|
||||
fn render_sources(cx: &mut Context,
|
||||
krate: clean::Crate) -> io::IoResult<clean::Crate> {
|
||||
krate: clean::Crate) -> old_io::IoResult<clean::Crate> {
|
||||
info!("emitting source files");
|
||||
let dst = cx.dst.join("src");
|
||||
try!(mkdir(&dst));
|
||||
|
|
@ -625,15 +625,15 @@ fn render_sources(cx: &mut Context,
|
|||
|
||||
/// Writes the entire contents of a string to a destination, not attempting to
|
||||
/// catch any errors.
|
||||
fn write(dst: Path, contents: &[u8]) -> io::IoResult<()> {
|
||||
File::create(&dst).write(contents)
|
||||
fn write(dst: Path, contents: &[u8]) -> old_io::IoResult<()> {
|
||||
File::create(&dst).write_all(contents)
|
||||
}
|
||||
|
||||
/// Makes a directory on the filesystem, failing the task if an error occurs and
|
||||
/// skipping if the directory already exists.
|
||||
fn mkdir(path: &Path) -> io::IoResult<()> {
|
||||
fn mkdir(path: &Path) -> old_io::IoResult<()> {
|
||||
if !path.exists() {
|
||||
fs::mkdir(path, io::USER_RWX)
|
||||
fs::mkdir(path, old_io::USER_RWX)
|
||||
} else {
|
||||
Ok(())
|
||||
}
|
||||
|
|
@ -736,7 +736,7 @@ impl<'a> DocFolder for SourceCollector<'a> {
|
|||
|
||||
impl<'a> SourceCollector<'a> {
|
||||
/// Renders the given filename into its corresponding HTML source file.
|
||||
fn emit_source(&mut self, filename: &str) -> io::IoResult<()> {
|
||||
fn emit_source(&mut self, filename: &str) -> old_io::IoResult<()> {
|
||||
let p = Path::new(filename);
|
||||
|
||||
// If we couldn't open this file, then just returns because it
|
||||
|
|
@ -1084,7 +1084,7 @@ impl Context {
|
|||
/// This currently isn't parallelized, but it'd be pretty easy to add
|
||||
/// parallelization to this function.
|
||||
fn krate(mut self, mut krate: clean::Crate,
|
||||
stability: stability_summary::ModuleSummary) -> io::IoResult<()> {
|
||||
stability: stability_summary::ModuleSummary) -> old_io::IoResult<()> {
|
||||
let mut item = match krate.module.take() {
|
||||
Some(i) => i,
|
||||
None => return Ok(())
|
||||
|
|
@ -1134,11 +1134,11 @@ impl Context {
|
|||
/// all sub-items which need to be rendered.
|
||||
///
|
||||
/// The rendering driver uses this closure to queue up more work.
|
||||
fn item<F>(&mut self, item: clean::Item, mut f: F) -> io::IoResult<()> where
|
||||
fn item<F>(&mut self, item: clean::Item, mut f: F) -> old_io::IoResult<()> where
|
||||
F: FnMut(&mut Context, clean::Item),
|
||||
{
|
||||
fn render(w: io::File, cx: &Context, it: &clean::Item,
|
||||
pushname: bool) -> io::IoResult<()> {
|
||||
fn render(w: old_io::File, cx: &Context, it: &clean::Item,
|
||||
pushname: bool) -> old_io::IoResult<()> {
|
||||
info!("Rendering an item to {}", w.path().display());
|
||||
// A little unfortunate that this is done like this, but it sure
|
||||
// does make formatting *a lot* nicer.
|
||||
|
|
|
|||
|
|
@ -38,8 +38,8 @@ extern crate "serialize" as rustc_serialize; // used by deriving
|
|||
|
||||
use std::cell::RefCell;
|
||||
use std::collections::HashMap;
|
||||
use std::io::File;
|
||||
use std::io;
|
||||
use std::old_io::File;
|
||||
use std::old_io;
|
||||
use std::rc::Rc;
|
||||
use externalfiles::ExternalHtml;
|
||||
use serialize::Decodable;
|
||||
|
|
@ -476,7 +476,7 @@ fn json_input(input: &str) -> Result<Output, String> {
|
|||
/// Outputs the crate/plugin json as a giant json blob at the specified
|
||||
/// destination.
|
||||
fn json_output(krate: clean::Crate, res: Vec<plugins::PluginJson> ,
|
||||
dst: Path) -> io::IoResult<()> {
|
||||
dst: Path) -> old_io::IoResult<()> {
|
||||
// {
|
||||
// "schema": version,
|
||||
// "crate": { parsed crate ... },
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
use std::io;
|
||||
use std::old_io;
|
||||
|
||||
use core;
|
||||
use getopts;
|
||||
|
|
@ -59,9 +59,9 @@ pub fn render(input: &str, mut output: Path, matches: &getopts::Matches,
|
|||
}
|
||||
let playground = playground.unwrap_or("".to_string());
|
||||
|
||||
let mut out = match io::File::create(&output) {
|
||||
let mut out = match old_io::File::create(&output) {
|
||||
Err(e) => {
|
||||
let _ = writeln!(&mut io::stderr(),
|
||||
let _ = writeln!(&mut old_io::stderr(),
|
||||
"error opening `{}` for writing: {}",
|
||||
output.display(), e);
|
||||
return 4;
|
||||
|
|
@ -71,7 +71,7 @@ pub fn render(input: &str, mut output: Path, matches: &getopts::Matches,
|
|||
|
||||
let (metadata, text) = extract_leading_metadata(input_str.as_slice());
|
||||
if metadata.len() == 0 {
|
||||
let _ = writeln!(&mut io::stderr(),
|
||||
let _ = writeln!(&mut old_io::stderr(),
|
||||
"invalid markdown file: expecting initial line with `% ...TITLE...`");
|
||||
return 5;
|
||||
}
|
||||
|
|
@ -126,7 +126,7 @@ pub fn render(input: &str, mut output: Path, matches: &getopts::Matches,
|
|||
|
||||
match err {
|
||||
Err(e) => {
|
||||
let _ = writeln!(&mut io::stderr(),
|
||||
let _ = writeln!(&mut old_io::stderr(),
|
||||
"error writing to `{}`: {}",
|
||||
output.display(), e);
|
||||
6
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@
|
|||
use std::cell::RefCell;
|
||||
use std::sync::mpsc::channel;
|
||||
use std::dynamic_lib::DynamicLibrary;
|
||||
use std::io::{Command, TempDir};
|
||||
use std::io;
|
||||
use std::old_io::{Command, TempDir};
|
||||
use std::old_io;
|
||||
use std::os;
|
||||
use std::str;
|
||||
use std::thread::Thread;
|
||||
|
|
@ -145,20 +145,20 @@ fn runtest(test: &str, cratename: &str, libs: SearchPaths,
|
|||
// The basic idea is to not use a default_handler() for rustc, and then also
|
||||
// not print things by default to the actual stderr.
|
||||
let (tx, rx) = channel();
|
||||
let w1 = io::ChanWriter::new(tx);
|
||||
let w1 = old_io::ChanWriter::new(tx);
|
||||
let w2 = w1.clone();
|
||||
let old = io::stdio::set_stderr(box w1);
|
||||
let old = old_io::stdio::set_stderr(box w1);
|
||||
Thread::spawn(move |:| {
|
||||
let mut p = io::ChanReader::new(rx);
|
||||
let mut p = old_io::ChanReader::new(rx);
|
||||
let mut err = match old {
|
||||
Some(old) => {
|
||||
// Chop off the `Send` bound.
|
||||
let old: Box<Writer> = old;
|
||||
old
|
||||
}
|
||||
None => box io::stderr() as Box<Writer>,
|
||||
None => box old_io::stderr() as Box<Writer>,
|
||||
};
|
||||
io::util::copy(&mut p, &mut err).unwrap();
|
||||
old_io::util::copy(&mut p, &mut err).unwrap();
|
||||
});
|
||||
let emitter = diagnostic::EmitterWriter::new(box w2, None);
|
||||
|
||||
|
|
@ -200,7 +200,7 @@ fn runtest(test: &str, cratename: &str, libs: SearchPaths,
|
|||
|
||||
match cmd.output() {
|
||||
Err(e) => panic!("couldn't run the test: {}{}", e,
|
||||
if e.kind == io::PermissionDenied {
|
||||
if e.kind == old_io::PermissionDenied {
|
||||
" - maybe your tempdir is mounted with noexec?"
|
||||
} else { "" }),
|
||||
Ok(out) => {
|
||||
|
|
|
|||
|
|
@ -201,7 +201,7 @@ use self::InternalStackElement::*;
|
|||
|
||||
use std;
|
||||
use std::collections::{HashMap, BTreeMap};
|
||||
use std::{char, f64, fmt, io, num, str};
|
||||
use std::{char, f64, fmt, old_io, num, str};
|
||||
use std::mem::{swap};
|
||||
use std::num::{Float, Int};
|
||||
use std::num::FpCategory as Fp;
|
||||
|
|
@ -260,7 +260,7 @@ pub enum ErrorCode {
|
|||
pub enum ParserError {
|
||||
/// msg, line, col
|
||||
SyntaxError(ErrorCode, uint, uint),
|
||||
IoError(io::IoErrorKind, &'static str),
|
||||
IoError(old_io::IoErrorKind, &'static str),
|
||||
}
|
||||
|
||||
// Builder and Parser have the same errors.
|
||||
|
|
@ -331,7 +331,7 @@ impl fmt::Display for ErrorCode {
|
|||
}
|
||||
}
|
||||
|
||||
fn io_error_to_error(io: io::IoError) -> ParserError {
|
||||
fn io_error_to_error(io: old_io::IoError) -> ParserError {
|
||||
IoError(io.kind, io.desc)
|
||||
}
|
||||
|
||||
|
|
@ -2057,8 +2057,8 @@ impl<T: Iterator<Item=char>> Builder<T> {
|
|||
}
|
||||
}
|
||||
|
||||
/// Decodes a json value from an `&mut io::Reader`
|
||||
pub fn from_reader(rdr: &mut io::Reader) -> Result<Json, BuilderError> {
|
||||
/// Decodes a json value from an `&mut old_io::Reader`
|
||||
pub fn from_reader(rdr: &mut old_io::Reader) -> Result<Json, BuilderError> {
|
||||
let contents = match rdr.read_to_end() {
|
||||
Ok(c) => c,
|
||||
Err(e) => return Err(io_error_to_error(e))
|
||||
|
|
@ -2618,7 +2618,7 @@ mod tests {
|
|||
use super::JsonEvent::*;
|
||||
use super::{Json, from_str, DecodeResult, DecoderError, JsonEvent, Parser,
|
||||
StackElement, Stack, Decoder, Encoder, EncoderError};
|
||||
use std::{i64, u64, f32, f64, io};
|
||||
use std::{i64, u64, f32, f64, old_io};
|
||||
use std::collections::BTreeMap;
|
||||
use std::num::Float;
|
||||
use std::string;
|
||||
|
|
@ -3456,7 +3456,7 @@ mod tests {
|
|||
#[test]
|
||||
fn test_encode_hashmap_with_numeric_key() {
|
||||
use std::str::from_utf8;
|
||||
use std::io::Writer;
|
||||
use std::old_io::Writer;
|
||||
use std::collections::HashMap;
|
||||
let mut hm: HashMap<uint, bool> = HashMap::new();
|
||||
hm.insert(1, true);
|
||||
|
|
@ -3472,7 +3472,7 @@ mod tests {
|
|||
#[test]
|
||||
fn test_prettyencode_hashmap_with_numeric_key() {
|
||||
use std::str::from_utf8;
|
||||
use std::io::Writer;
|
||||
use std::old_io::Writer;
|
||||
use std::collections::HashMap;
|
||||
let mut hm: HashMap<uint, bool> = HashMap::new();
|
||||
hm.insert(1, true);
|
||||
|
|
@ -3929,7 +3929,7 @@ mod tests {
|
|||
#[test]
|
||||
fn test_encode_hashmap_with_arbitrary_key() {
|
||||
use std::str::from_utf8;
|
||||
use std::io::Writer;
|
||||
use std::old_io::Writer;
|
||||
use std::collections::HashMap;
|
||||
use std::fmt;
|
||||
#[derive(PartialEq, Eq, Hash, RustcEncodable)]
|
||||
|
|
|
|||
|
|
@ -14,12 +14,12 @@ use prelude::v1::*;
|
|||
|
||||
use any::Any;
|
||||
use cell::RefCell;
|
||||
use io::IoResult;
|
||||
use old_io::IoResult;
|
||||
use rt::{backtrace, unwind};
|
||||
use rt::util::{Stderr, Stdio};
|
||||
use thread::Thread;
|
||||
|
||||
// Defined in this module instead of io::stdio so that the unwinding
|
||||
// Defined in this module instead of old_io::stdio so that the unwinding
|
||||
thread_local! {
|
||||
pub static LOCAL_STDERR: RefCell<Option<Box<Writer + Send>>> = {
|
||||
RefCell::new(None)
|
||||
|
|
@ -27,7 +27,7 @@ thread_local! {
|
|||
}
|
||||
|
||||
impl Writer for Stdio {
|
||||
fn write(&mut self, bytes: &[u8]) -> IoResult<()> {
|
||||
fn write_all(&mut self, bytes: &[u8]) -> IoResult<()> {
|
||||
let _ = self.write_bytes(bytes);
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
|||
|
|
@ -238,7 +238,7 @@
|
|||
//!
|
||||
//! ```ignore
|
||||
//! format! // described above
|
||||
//! write! // first argument is a &mut io::Writer, the destination
|
||||
//! write! // first argument is a &mut old_io::Writer, the destination
|
||||
//! writeln! // same as write but appends a newline
|
||||
//! print! // the format string is printed to the standard output
|
||||
//! println! // same as print but appends a newline
|
||||
|
|
@ -255,10 +255,8 @@
|
|||
//!
|
||||
//! ```rust
|
||||
//! # #![allow(unused_must_use)]
|
||||
//! use std::io;
|
||||
//!
|
||||
//! let mut w = Vec::new();
|
||||
//! write!(&mut w as &mut io::Writer, "Hello {}!", "world");
|
||||
//! write!(&mut w, "Hello {}!", "world");
|
||||
//! ```
|
||||
//!
|
||||
//! #### `print!`
|
||||
|
|
@ -282,15 +280,15 @@
|
|||
//!
|
||||
//! ```
|
||||
//! use std::fmt;
|
||||
//! use std::io;
|
||||
//! use std::old_io;
|
||||
//!
|
||||
//! fmt::format(format_args!("this returns {}", "String"));
|
||||
//!
|
||||
//! let some_writer: &mut io::Writer = &mut io::stdout();
|
||||
//! write!(some_writer, "{}", format_args!("print with a {}", "macro"));
|
||||
//! let mut some_writer = old_io::stdout();
|
||||
//! write!(&mut some_writer, "{}", format_args!("print with a {}", "macro"));
|
||||
//!
|
||||
//! fn my_fmt_fn(args: fmt::Arguments) {
|
||||
//! write!(&mut io::stdout(), "{}", args);
|
||||
//! write!(&mut old_io::stdout(), "{}", args);
|
||||
//! }
|
||||
//! my_fmt_fn(format_args!("or a {} too", "function"));
|
||||
//! ```
|
||||
|
|
|
|||
|
|
@ -79,7 +79,8 @@
|
|||
//! memory types, including [`atomic`](sync/atomic/index.html).
|
||||
//!
|
||||
//! Common types of I/O, including files, TCP, UDP, pipes, Unix domain sockets,
|
||||
//! timers, and process spawning, are defined in the [`io`](io/index.html) module.
|
||||
//! timers, and process spawning, are defined in the
|
||||
//! [`old_io`](old_io/index.html) module.
|
||||
//!
|
||||
//! Rust's I/O and concurrency depends on a small runtime interface
|
||||
//! that lives, along with its support code, in mod [`rt`](rt/index.html).
|
||||
|
|
@ -239,7 +240,7 @@ pub mod thread_local;
|
|||
pub mod dynamic_lib;
|
||||
pub mod ffi;
|
||||
pub mod fmt;
|
||||
pub mod io;
|
||||
pub mod old_io;
|
||||
pub mod os;
|
||||
pub mod path;
|
||||
pub mod rand;
|
||||
|
|
@ -284,7 +285,7 @@ mod std {
|
|||
pub use sync; // used for select!()
|
||||
pub use error; // used for try!()
|
||||
pub use fmt; // used for any formatting strings
|
||||
pub use io; // used for println!()
|
||||
pub use old_io; // used for println!()
|
||||
pub use option; // used for bitflags!{}
|
||||
pub use rt; // used for panic!()
|
||||
pub use vec; // used for vec![]
|
||||
|
|
|
|||
|
|
@ -81,14 +81,14 @@ macro_rules! format {
|
|||
#[macro_export]
|
||||
#[stable]
|
||||
macro_rules! print {
|
||||
($($arg:tt)*) => ($crate::io::stdio::print_args(format_args!($($arg)*)))
|
||||
($($arg:tt)*) => ($crate::old_io::stdio::print_args(format_args!($($arg)*)))
|
||||
}
|
||||
|
||||
/// Macro for printing to a task's stdout handle.
|
||||
///
|
||||
/// Each task can override its stdout handle via `std::io::stdio::set_stdout`.
|
||||
/// Each task can override its stdout handle via `std::old_io::stdio::set_stdout`.
|
||||
/// The syntax of this macro is the same as that used for `format!`. For more
|
||||
/// information, see `std::fmt` and `std::io::stdio`.
|
||||
/// information, see `std::fmt` and `std::old_io::stdio`.
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
|
|
@ -99,7 +99,7 @@ macro_rules! print {
|
|||
#[macro_export]
|
||||
#[stable]
|
||||
macro_rules! println {
|
||||
($($arg:tt)*) => ($crate::io::stdio::println_args(format_args!($($arg)*)))
|
||||
($($arg:tt)*) => ($crate::old_io::stdio::println_args(format_args!($($arg)*)))
|
||||
}
|
||||
|
||||
/// Helper macro for unwrapping `Result` values while returning early with an
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
use cmp;
|
||||
use fmt;
|
||||
use io::{Reader, Writer, Stream, Buffer, DEFAULT_BUF_SIZE, IoResult};
|
||||
use old_io::{Reader, Writer, Stream, Buffer, DEFAULT_BUF_SIZE, IoResult};
|
||||
use iter::{IteratorExt, ExactSizeIterator, repeat};
|
||||
use ops::Drop;
|
||||
use option::Option;
|
||||
|
|
@ -34,7 +34,7 @@ use vec::Vec;
|
|||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// use std::io::{BufferedReader, File};
|
||||
/// use std::old_io::{BufferedReader, File};
|
||||
///
|
||||
/// let file = File::open(&Path::new("message.txt"));
|
||||
/// let mut reader = BufferedReader::new(file);
|
||||
|
|
@ -137,7 +137,7 @@ impl<R: Reader> Reader for BufferedReader<R> {
|
|||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// use std::io::{BufferedWriter, File};
|
||||
/// use std::old_io::{BufferedWriter, File};
|
||||
///
|
||||
/// let file = File::create(&Path::new("message.txt")).unwrap();
|
||||
/// let mut writer = BufferedWriter::new(file);
|
||||
|
|
@ -184,7 +184,7 @@ impl<W: Writer> BufferedWriter<W> {
|
|||
|
||||
fn flush_buf(&mut self) -> IoResult<()> {
|
||||
if self.pos != 0 {
|
||||
let ret = self.inner.as_mut().unwrap().write(&self.buf[..self.pos]);
|
||||
let ret = self.inner.as_mut().unwrap().write_all(&self.buf[..self.pos]);
|
||||
self.pos = 0;
|
||||
ret
|
||||
} else {
|
||||
|
|
@ -213,13 +213,13 @@ impl<W: Writer> BufferedWriter<W> {
|
|||
}
|
||||
|
||||
impl<W: Writer> Writer for BufferedWriter<W> {
|
||||
fn write(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
fn write_all(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
if self.pos + buf.len() > self.buf.len() {
|
||||
try!(self.flush_buf());
|
||||
}
|
||||
|
||||
if buf.len() > self.buf.len() {
|
||||
self.inner.as_mut().unwrap().write(buf)
|
||||
self.inner.as_mut().unwrap().write_all(buf)
|
||||
} else {
|
||||
let dst = &mut self.buf[self.pos..];
|
||||
slice::bytes::copy_memory(dst, buf);
|
||||
|
|
@ -281,15 +281,15 @@ impl<W: Writer> LineBufferedWriter<W> {
|
|||
}
|
||||
|
||||
impl<W: Writer> Writer for LineBufferedWriter<W> {
|
||||
fn write(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
fn write_all(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
match buf.iter().rposition(|&b| b == b'\n') {
|
||||
Some(i) => {
|
||||
try!(self.inner.write(&buf[..i + 1]));
|
||||
try!(self.inner.write_all(&buf[..i + 1]));
|
||||
try!(self.inner.flush());
|
||||
try!(self.inner.write(&buf[i + 1..]));
|
||||
try!(self.inner.write_all(&buf[i + 1..]));
|
||||
Ok(())
|
||||
}
|
||||
None => self.inner.write(buf),
|
||||
None => self.inner.write_all(buf),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -324,12 +324,12 @@ impl<W: Reader> Reader for InternalBufferedWriter<W> {
|
|||
///
|
||||
/// ```rust
|
||||
/// # #![allow(unused_must_use)]
|
||||
/// use std::io::{BufferedStream, File};
|
||||
/// use std::old_io::{BufferedStream, File};
|
||||
///
|
||||
/// let file = File::open(&Path::new("message.txt"));
|
||||
/// let mut stream = BufferedStream::new(file);
|
||||
///
|
||||
/// stream.write("hello, world".as_bytes());
|
||||
/// stream.write_all("hello, world".as_bytes());
|
||||
/// stream.flush();
|
||||
///
|
||||
/// let mut buf = [0; 100];
|
||||
|
|
@ -412,8 +412,8 @@ impl<S: Stream> Reader for BufferedStream<S> {
|
|||
}
|
||||
|
||||
impl<S: Stream> Writer for BufferedStream<S> {
|
||||
fn write(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
self.inner.inner.get_mut().write(buf)
|
||||
fn write_all(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
self.inner.inner.get_mut().write_all(buf)
|
||||
}
|
||||
fn flush(&mut self) -> IoResult<()> {
|
||||
self.inner.inner.get_mut().flush()
|
||||
|
|
@ -423,7 +423,7 @@ impl<S: Stream> Writer for BufferedStream<S> {
|
|||
#[cfg(test)]
|
||||
mod test {
|
||||
extern crate test;
|
||||
use io;
|
||||
use old_io;
|
||||
use prelude::v1::*;
|
||||
use super::*;
|
||||
use super::super::{IoResult, EndOfFile};
|
||||
|
|
@ -437,13 +437,13 @@ mod test {
|
|||
pub struct NullStream;
|
||||
|
||||
impl Reader for NullStream {
|
||||
fn read(&mut self, _: &mut [u8]) -> io::IoResult<uint> {
|
||||
Err(io::standard_error(io::EndOfFile))
|
||||
fn read(&mut self, _: &mut [u8]) -> old_io::IoResult<uint> {
|
||||
Err(old_io::standard_error(old_io::EndOfFile))
|
||||
}
|
||||
}
|
||||
|
||||
impl Writer for NullStream {
|
||||
fn write(&mut self, _: &[u8]) -> io::IoResult<()> { Ok(()) }
|
||||
fn write_all(&mut self, _: &[u8]) -> old_io::IoResult<()> { Ok(()) }
|
||||
}
|
||||
|
||||
/// A dummy reader intended at testing short-reads propagation.
|
||||
|
|
@ -452,9 +452,9 @@ mod test {
|
|||
}
|
||||
|
||||
impl Reader for ShortReader {
|
||||
fn read(&mut self, _: &mut [u8]) -> io::IoResult<uint> {
|
||||
fn read(&mut self, _: &mut [u8]) -> old_io::IoResult<uint> {
|
||||
if self.lengths.is_empty() {
|
||||
Err(io::standard_error(io::EndOfFile))
|
||||
Err(old_io::standard_error(old_io::EndOfFile))
|
||||
} else {
|
||||
Ok(self.lengths.remove(0))
|
||||
}
|
||||
|
|
@ -503,34 +503,34 @@ mod test {
|
|||
let inner = Vec::new();
|
||||
let mut writer = BufferedWriter::with_capacity(2, inner);
|
||||
|
||||
writer.write(&[0, 1]).unwrap();
|
||||
writer.write_all(&[0, 1]).unwrap();
|
||||
let b: &[_] = &[];
|
||||
assert_eq!(&writer.get_ref()[], b);
|
||||
|
||||
writer.write(&[2]).unwrap();
|
||||
writer.write_all(&[2]).unwrap();
|
||||
let b: &[_] = &[0, 1];
|
||||
assert_eq!(&writer.get_ref()[], b);
|
||||
|
||||
writer.write(&[3]).unwrap();
|
||||
writer.write_all(&[3]).unwrap();
|
||||
assert_eq!(&writer.get_ref()[], b);
|
||||
|
||||
writer.flush().unwrap();
|
||||
let a: &[_] = &[0, 1, 2, 3];
|
||||
assert_eq!(a, &writer.get_ref()[]);
|
||||
|
||||
writer.write(&[4]).unwrap();
|
||||
writer.write(&[5]).unwrap();
|
||||
writer.write_all(&[4]).unwrap();
|
||||
writer.write_all(&[5]).unwrap();
|
||||
assert_eq!(a, &writer.get_ref()[]);
|
||||
|
||||
writer.write(&[6]).unwrap();
|
||||
writer.write_all(&[6]).unwrap();
|
||||
let a: &[_] = &[0, 1, 2, 3, 4, 5];
|
||||
assert_eq!(a, &writer.get_ref()[]);
|
||||
|
||||
writer.write(&[7, 8]).unwrap();
|
||||
writer.write_all(&[7, 8]).unwrap();
|
||||
let a: &[_] = &[0, 1, 2, 3, 4, 5, 6];
|
||||
assert_eq!(a, &writer.get_ref()[]);
|
||||
|
||||
writer.write(&[9, 10, 11]).unwrap();
|
||||
writer.write_all(&[9, 10, 11]).unwrap();
|
||||
let a: &[_] = &[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
|
||||
assert_eq!(a, &writer.get_ref()[]);
|
||||
|
||||
|
|
@ -541,7 +541,7 @@ mod test {
|
|||
#[test]
|
||||
fn test_buffered_writer_inner_flushes() {
|
||||
let mut w = BufferedWriter::with_capacity(3, Vec::new());
|
||||
w.write(&[0, 1]).unwrap();
|
||||
w.write_all(&[0, 1]).unwrap();
|
||||
let a: &[_] = &[];
|
||||
assert_eq!(a, &w.get_ref()[]);
|
||||
let w = w.into_inner();
|
||||
|
|
@ -555,20 +555,20 @@ mod test {
|
|||
fn test_buffered_stream() {
|
||||
struct S;
|
||||
|
||||
impl io::Writer for S {
|
||||
fn write(&mut self, _: &[u8]) -> io::IoResult<()> { Ok(()) }
|
||||
impl old_io::Writer for S {
|
||||
fn write_all(&mut self, _: &[u8]) -> old_io::IoResult<()> { Ok(()) }
|
||||
}
|
||||
|
||||
impl io::Reader for S {
|
||||
fn read(&mut self, _: &mut [u8]) -> io::IoResult<uint> {
|
||||
Err(io::standard_error(io::EndOfFile))
|
||||
impl old_io::Reader for S {
|
||||
fn read(&mut self, _: &mut [u8]) -> old_io::IoResult<uint> {
|
||||
Err(old_io::standard_error(old_io::EndOfFile))
|
||||
}
|
||||
}
|
||||
|
||||
let mut stream = BufferedStream::new(S);
|
||||
let mut buf = [];
|
||||
assert!(stream.read(&mut buf).is_err());
|
||||
stream.write(&buf).unwrap();
|
||||
stream.write_all(&buf).unwrap();
|
||||
stream.flush().unwrap();
|
||||
}
|
||||
|
||||
|
|
@ -586,21 +586,21 @@ mod test {
|
|||
#[test]
|
||||
fn test_line_buffer() {
|
||||
let mut writer = LineBufferedWriter::new(Vec::new());
|
||||
writer.write(&[0]).unwrap();
|
||||
writer.write_all(&[0]).unwrap();
|
||||
let b: &[_] = &[];
|
||||
assert_eq!(&writer.get_ref()[], b);
|
||||
writer.write(&[1]).unwrap();
|
||||
writer.write_all(&[1]).unwrap();
|
||||
assert_eq!(&writer.get_ref()[], b);
|
||||
writer.flush().unwrap();
|
||||
let b: &[_] = &[0, 1];
|
||||
assert_eq!(&writer.get_ref()[], b);
|
||||
writer.write(&[0, b'\n', 1, b'\n', 2]).unwrap();
|
||||
writer.write_all(&[0, b'\n', 1, b'\n', 2]).unwrap();
|
||||
let b: &[_] = &[0, 1, 0, b'\n', 1, b'\n'];
|
||||
assert_eq!(&writer.get_ref()[], b);
|
||||
writer.flush().unwrap();
|
||||
let b: &[_] = &[0, 1, 0, b'\n', 1, b'\n', 2];
|
||||
assert_eq!(&writer.get_ref()[], b);
|
||||
writer.write(&[3, b'\n']).unwrap();
|
||||
writer.write_all(&[3, b'\n']).unwrap();
|
||||
let b: &[_] = &[0, 1, 0, b'\n', 1, b'\n', 2, 3, b'\n'];
|
||||
assert_eq!(&writer.get_ref()[], b);
|
||||
}
|
||||
|
|
@ -663,8 +663,8 @@ mod test {
|
|||
struct FailFlushWriter;
|
||||
|
||||
impl Writer for FailFlushWriter {
|
||||
fn write(&mut self, _buf: &[u8]) -> IoResult<()> { Ok(()) }
|
||||
fn flush(&mut self) -> IoResult<()> { Err(io::standard_error(EndOfFile)) }
|
||||
fn write_all(&mut self, _buf: &[u8]) -> IoResult<()> { Ok(()) }
|
||||
fn flush(&mut self) -> IoResult<()> { Err(old_io::standard_error(EndOfFile)) }
|
||||
}
|
||||
|
||||
let writer = FailFlushWriter;
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
use clone::Clone;
|
||||
use cmp;
|
||||
use sync::mpsc::{Sender, Receiver};
|
||||
use io;
|
||||
use old_io;
|
||||
use option::Option::{None, Some};
|
||||
use result::Result::{Ok, Err};
|
||||
use slice::{bytes, SliceExt};
|
||||
|
|
@ -24,7 +24,7 @@ use vec::Vec;
|
|||
///
|
||||
/// ```
|
||||
/// use std::sync::mpsc::channel;
|
||||
/// use std::io::ChanReader;
|
||||
/// use std::old_io::ChanReader;
|
||||
///
|
||||
/// let (tx, rx) = channel();
|
||||
/// # drop(tx);
|
||||
|
|
@ -70,7 +70,7 @@ impl Buffer for ChanReader {
|
|||
}
|
||||
}
|
||||
if self.closed {
|
||||
Err(io::standard_error(io::EndOfFile))
|
||||
Err(old_io::standard_error(old_io::EndOfFile))
|
||||
} else {
|
||||
Ok(&self.buf[self.pos..])
|
||||
}
|
||||
|
|
@ -102,7 +102,7 @@ impl Reader for ChanReader {
|
|||
}
|
||||
}
|
||||
if self.closed && num_read == 0 {
|
||||
Err(io::standard_error(io::EndOfFile))
|
||||
Err(old_io::standard_error(old_io::EndOfFile))
|
||||
} else {
|
||||
Ok(num_read)
|
||||
}
|
||||
|
|
@ -116,7 +116,7 @@ impl Reader for ChanReader {
|
|||
/// ```
|
||||
/// # #![allow(unused_must_use)]
|
||||
/// use std::sync::mpsc::channel;
|
||||
/// use std::io::ChanWriter;
|
||||
/// use std::old_io::ChanWriter;
|
||||
///
|
||||
/// let (tx, rx) = channel();
|
||||
/// # drop(rx);
|
||||
|
|
@ -142,10 +142,10 @@ impl Clone for ChanWriter {
|
|||
}
|
||||
|
||||
impl Writer for ChanWriter {
|
||||
fn write(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
fn write_all(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
self.tx.send(buf.to_vec()).map_err(|_| {
|
||||
io::IoError {
|
||||
kind: io::BrokenPipe,
|
||||
old_io::IoError {
|
||||
kind: old_io::BrokenPipe,
|
||||
desc: "Pipe closed",
|
||||
detail: None
|
||||
}
|
||||
|
|
@ -160,7 +160,7 @@ mod test {
|
|||
|
||||
use sync::mpsc::channel;
|
||||
use super::*;
|
||||
use io;
|
||||
use old_io;
|
||||
use thread::Thread;
|
||||
|
||||
#[test]
|
||||
|
|
@ -193,14 +193,14 @@ mod test {
|
|||
|
||||
match reader.read(buf.as_mut_slice()) {
|
||||
Ok(..) => panic!(),
|
||||
Err(e) => assert_eq!(e.kind, io::EndOfFile),
|
||||
Err(e) => assert_eq!(e.kind, old_io::EndOfFile),
|
||||
}
|
||||
assert_eq!(a, buf);
|
||||
|
||||
// Ensure it continues to panic in the same way.
|
||||
match reader.read(buf.as_mut_slice()) {
|
||||
Ok(..) => panic!(),
|
||||
Err(e) => assert_eq!(e.kind, io::EndOfFile),
|
||||
Err(e) => assert_eq!(e.kind, old_io::EndOfFile),
|
||||
}
|
||||
assert_eq!(a, buf);
|
||||
}
|
||||
|
|
@ -223,7 +223,7 @@ mod test {
|
|||
assert_eq!(Ok("how are you?".to_string()), reader.read_line());
|
||||
match reader.read_line() {
|
||||
Ok(..) => panic!(),
|
||||
Err(e) => assert_eq!(e.kind, io::EndOfFile),
|
||||
Err(e) => assert_eq!(e.kind, old_io::EndOfFile),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -242,7 +242,7 @@ mod test {
|
|||
|
||||
match writer.write_u8(1) {
|
||||
Ok(..) => panic!(),
|
||||
Err(e) => assert_eq!(e.kind, io::BrokenPipe),
|
||||
Err(e) => assert_eq!(e.kind, old_io::BrokenPipe),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -15,8 +15,8 @@
|
|||
// FIXME: Not sure how this should be structured
|
||||
// FIXME: Iteration should probably be considered separately
|
||||
|
||||
use io::{IoError, IoResult, Reader};
|
||||
use io;
|
||||
use old_io::{IoError, IoResult, Reader};
|
||||
use old_io;
|
||||
use iter::Iterator;
|
||||
use num::Int;
|
||||
use ops::FnOnce;
|
||||
|
|
@ -59,7 +59,7 @@ impl<'r, R: Reader> Iterator for Bytes<'r, R> {
|
|||
fn next(&mut self) -> Option<IoResult<u8>> {
|
||||
match self.reader.read_byte() {
|
||||
Ok(x) => Some(Ok(x)),
|
||||
Err(IoError { kind: io::EndOfFile, .. }) => None,
|
||||
Err(IoError { kind: old_io::EndOfFile, .. }) => None,
|
||||
Err(e) => Some(Err(e))
|
||||
}
|
||||
}
|
||||
|
|
@ -178,15 +178,15 @@ pub fn u64_from_be_bytes(data: &[u8], start: uint, size: uint) -> u64 {
|
|||
#[cfg(test)]
|
||||
mod test {
|
||||
use prelude::v1::*;
|
||||
use io;
|
||||
use io::{MemReader, BytesReader};
|
||||
use old_io;
|
||||
use old_io::{MemReader, BytesReader};
|
||||
|
||||
struct InitialZeroByteReader {
|
||||
count: int,
|
||||
}
|
||||
|
||||
impl Reader for InitialZeroByteReader {
|
||||
fn read(&mut self, buf: &mut [u8]) -> io::IoResult<uint> {
|
||||
fn read(&mut self, buf: &mut [u8]) -> old_io::IoResult<uint> {
|
||||
if self.count == 0 {
|
||||
self.count = 1;
|
||||
Ok(0)
|
||||
|
|
@ -200,16 +200,16 @@ mod test {
|
|||
struct EofReader;
|
||||
|
||||
impl Reader for EofReader {
|
||||
fn read(&mut self, _: &mut [u8]) -> io::IoResult<uint> {
|
||||
Err(io::standard_error(io::EndOfFile))
|
||||
fn read(&mut self, _: &mut [u8]) -> old_io::IoResult<uint> {
|
||||
Err(old_io::standard_error(old_io::EndOfFile))
|
||||
}
|
||||
}
|
||||
|
||||
struct ErroringReader;
|
||||
|
||||
impl Reader for ErroringReader {
|
||||
fn read(&mut self, _: &mut [u8]) -> io::IoResult<uint> {
|
||||
Err(io::standard_error(io::InvalidInput))
|
||||
fn read(&mut self, _: &mut [u8]) -> old_io::IoResult<uint> {
|
||||
Err(old_io::standard_error(old_io::InvalidInput))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -218,7 +218,7 @@ mod test {
|
|||
}
|
||||
|
||||
impl Reader for PartialReader {
|
||||
fn read(&mut self, buf: &mut [u8]) -> io::IoResult<uint> {
|
||||
fn read(&mut self, buf: &mut [u8]) -> old_io::IoResult<uint> {
|
||||
if self.count == 0 {
|
||||
self.count = 1;
|
||||
buf[0] = 10;
|
||||
|
|
@ -237,13 +237,13 @@ mod test {
|
|||
}
|
||||
|
||||
impl Reader for ErroringLaterReader {
|
||||
fn read(&mut self, buf: &mut [u8]) -> io::IoResult<uint> {
|
||||
fn read(&mut self, buf: &mut [u8]) -> old_io::IoResult<uint> {
|
||||
if self.count == 0 {
|
||||
self.count = 1;
|
||||
buf[0] = 10;
|
||||
Ok(1)
|
||||
} else {
|
||||
Err(io::standard_error(io::InvalidInput))
|
||||
Err(old_io::standard_error(old_io::InvalidInput))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -253,7 +253,7 @@ mod test {
|
|||
}
|
||||
|
||||
impl Reader for ThreeChunkReader {
|
||||
fn read(&mut self, buf: &mut [u8]) -> io::IoResult<uint> {
|
||||
fn read(&mut self, buf: &mut [u8]) -> old_io::IoResult<uint> {
|
||||
if self.count == 0 {
|
||||
self.count = 1;
|
||||
buf[0] = 10;
|
||||
|
|
@ -265,7 +265,7 @@ mod test {
|
|||
buf[1] = 13;
|
||||
Ok(2)
|
||||
} else {
|
||||
Err(io::standard_error(io::EndOfFile))
|
||||
Err(old_io::standard_error(old_io::EndOfFile))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -18,21 +18,21 @@
|
|||
//! At the top-level of the module are a set of freestanding functions, associated
|
||||
//! with various filesystem operations. They all operate on `Path` objects.
|
||||
//!
|
||||
//! All operations in this module, including those as part of `File` et al
|
||||
//! block the task during execution. In the event of failure, all functions/methods
|
||||
//! All operations in this module, including those as part of `File` et al block
|
||||
//! the task during execution. In the event of failure, all functions/methods
|
||||
//! will return an `IoResult` type with an `Err` value.
|
||||
//!
|
||||
//! Also included in this module is an implementation block on the `Path` object
|
||||
//! defined in `std::path::Path`. The impl adds useful methods about inspecting the
|
||||
//! metadata of a file. This includes getting the `stat` information, reading off
|
||||
//! particular bits of it, etc.
|
||||
//! defined in `std::path::Path`. The impl adds useful methods about inspecting
|
||||
//! the metadata of a file. This includes getting the `stat` information,
|
||||
//! reading off particular bits of it, etc.
|
||||
//!
|
||||
//! # Example
|
||||
//!
|
||||
//! ```rust
|
||||
//! # #![allow(unused_must_use)]
|
||||
//! use std::io::fs::PathExtensions;
|
||||
//! use std::io::{File, fs};
|
||||
//! use std::old_io::fs::PathExtensions;
|
||||
//! use std::old_io::{File, fs};
|
||||
//!
|
||||
//! let path = Path::new("foo.txt");
|
||||
//!
|
||||
|
|
@ -51,13 +51,13 @@
|
|||
//! ```
|
||||
|
||||
use clone::Clone;
|
||||
use io::standard_error;
|
||||
use io::{FilePermission, Write, Open, FileAccess, FileMode, FileType};
|
||||
use io::{IoResult, IoError, InvalidInput};
|
||||
use io::{FileStat, SeekStyle, Seek, Writer, Reader};
|
||||
use io::{Read, Truncate, ReadWrite, Append};
|
||||
use io::UpdateIoError;
|
||||
use io;
|
||||
use old_io::standard_error;
|
||||
use old_io::{FilePermission, Write, Open, FileAccess, FileMode, FileType};
|
||||
use old_io::{IoResult, IoError, InvalidInput};
|
||||
use old_io::{FileStat, SeekStyle, Seek, Writer, Reader};
|
||||
use old_io::{Read, Truncate, ReadWrite, Append};
|
||||
use old_io::UpdateIoError;
|
||||
use old_io;
|
||||
use iter::{Iterator, Extend};
|
||||
use option::Option;
|
||||
use option::Option::{Some, None};
|
||||
|
|
@ -101,7 +101,7 @@ impl File {
|
|||
/// # Example
|
||||
///
|
||||
/// ```rust,should_fail
|
||||
/// use std::io::{File, Open, ReadWrite};
|
||||
/// use std::old_io::{File, Open, ReadWrite};
|
||||
///
|
||||
/// let p = Path::new("/some/file/path.txt");
|
||||
///
|
||||
|
|
@ -170,7 +170,7 @@ impl File {
|
|||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// use std::io::File;
|
||||
/// use std::old_io::File;
|
||||
///
|
||||
/// let contents = File::open(&Path::new("foo.txt")).read_to_end();
|
||||
/// ```
|
||||
|
|
@ -188,12 +188,12 @@ impl File {
|
|||
///
|
||||
/// ```rust
|
||||
/// # #![allow(unused_must_use)]
|
||||
/// use std::io::File;
|
||||
/// use std::old_io::File;
|
||||
///
|
||||
/// let mut f = File::create(&Path::new("foo.txt"));
|
||||
/// f.write(b"This is a sample file");
|
||||
/// # drop(f);
|
||||
/// # ::std::io::fs::unlink(&Path::new("foo.txt"));
|
||||
/// # ::std::old_io::fs::unlink(&Path::new("foo.txt"));
|
||||
/// ```
|
||||
pub fn create(path: &Path) -> IoResult<File> {
|
||||
File::open_mode(path, Truncate, Write)
|
||||
|
|
@ -265,7 +265,7 @@ impl File {
|
|||
///
|
||||
/// ```rust
|
||||
/// # #![allow(unused_must_use)]
|
||||
/// use std::io::fs;
|
||||
/// use std::old_io::fs;
|
||||
///
|
||||
/// let p = Path::new("/some/file/path.txt");
|
||||
/// fs::unlink(&p);
|
||||
|
|
@ -293,7 +293,7 @@ pub fn unlink(path: &Path) -> IoResult<()> {
|
|||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// use std::io::fs;
|
||||
/// use std::old_io::fs;
|
||||
///
|
||||
/// let p = Path::new("/some/file/path.txt");
|
||||
/// match fs::stat(&p) {
|
||||
|
|
@ -333,7 +333,7 @@ pub fn lstat(path: &Path) -> IoResult<FileStat> {
|
|||
///
|
||||
/// ```rust
|
||||
/// # #![allow(unused_must_use)]
|
||||
/// use std::io::fs;
|
||||
/// use std::old_io::fs;
|
||||
///
|
||||
/// fs::rename(&Path::new("foo"), &Path::new("bar"));
|
||||
/// ```
|
||||
|
|
@ -359,7 +359,7 @@ pub fn rename(from: &Path, to: &Path) -> IoResult<()> {
|
|||
///
|
||||
/// ```rust
|
||||
/// # #![allow(unused_must_use)]
|
||||
/// use std::io::fs;
|
||||
/// use std::old_io::fs;
|
||||
///
|
||||
/// fs::copy(&Path::new("foo.txt"), &Path::new("bar.txt"));
|
||||
/// ```
|
||||
|
|
@ -386,7 +386,7 @@ pub fn copy(from: &Path, to: &Path) -> IoResult<()> {
|
|||
|
||||
if !from.is_file() {
|
||||
return update_err(Err(IoError {
|
||||
kind: io::MismatchedFileTypeForOperation,
|
||||
kind: old_io::MismatchedFileTypeForOperation,
|
||||
desc: "the source path is not an existing file",
|
||||
detail: None
|
||||
}), from, to)
|
||||
|
|
@ -407,13 +407,13 @@ pub fn copy(from: &Path, to: &Path) -> IoResult<()> {
|
|||
///
|
||||
/// ```rust
|
||||
/// # #![allow(unused_must_use)]
|
||||
/// use std::io;
|
||||
/// use std::io::fs;
|
||||
/// use std::old_io;
|
||||
/// use std::old_io::fs;
|
||||
///
|
||||
/// fs::chmod(&Path::new("file.txt"), io::USER_FILE);
|
||||
/// fs::chmod(&Path::new("file.txt"), io::USER_READ | io::USER_WRITE);
|
||||
/// fs::chmod(&Path::new("dir"), io::USER_DIR);
|
||||
/// fs::chmod(&Path::new("file.exe"), io::USER_EXEC);
|
||||
/// fs::chmod(&Path::new("file.txt"), old_io::USER_FILE);
|
||||
/// fs::chmod(&Path::new("file.txt"), old_io::USER_READ | old_io::USER_WRITE);
|
||||
/// fs::chmod(&Path::new("dir"), old_io::USER_DIR);
|
||||
/// fs::chmod(&Path::new("file.exe"), old_io::USER_EXEC);
|
||||
/// ```
|
||||
///
|
||||
/// # Error
|
||||
|
|
@ -421,7 +421,7 @@ pub fn copy(from: &Path, to: &Path) -> IoResult<()> {
|
|||
/// This function will return an error if the provided `path` doesn't exist, if
|
||||
/// the process lacks permissions to change the attributes of the file, or if
|
||||
/// some other I/O error is encountered.
|
||||
pub fn chmod(path: &Path, mode: io::FilePermission) -> IoResult<()> {
|
||||
pub fn chmod(path: &Path, mode: old_io::FilePermission) -> IoResult<()> {
|
||||
fs_imp::chmod(path, mode.bits() as uint)
|
||||
.update_err("couldn't chmod path", |e|
|
||||
format!("{}; path={}; mode={:?}", e, path.display(), mode))
|
||||
|
|
@ -469,11 +469,11 @@ pub fn readlink(path: &Path) -> IoResult<Path> {
|
|||
///
|
||||
/// ```rust
|
||||
/// # #![allow(unused_must_use)]
|
||||
/// use std::io;
|
||||
/// use std::io::fs;
|
||||
/// use std::old_io;
|
||||
/// use std::old_io::fs;
|
||||
///
|
||||
/// let p = Path::new("/some/dir");
|
||||
/// fs::mkdir(&p, io::USER_RWX);
|
||||
/// fs::mkdir(&p, old_io::USER_RWX);
|
||||
/// ```
|
||||
///
|
||||
/// # Error
|
||||
|
|
@ -492,7 +492,7 @@ pub fn mkdir(path: &Path, mode: FilePermission) -> IoResult<()> {
|
|||
///
|
||||
/// ```rust
|
||||
/// # #![allow(unused_must_use)]
|
||||
/// use std::io::fs;
|
||||
/// use std::old_io::fs;
|
||||
///
|
||||
/// let p = Path::new("/some/dir");
|
||||
/// fs::rmdir(&p);
|
||||
|
|
@ -513,12 +513,12 @@ pub fn rmdir(path: &Path) -> IoResult<()> {
|
|||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// use std::io::fs::PathExtensions;
|
||||
/// use std::io::fs;
|
||||
/// use std::io;
|
||||
/// use std::old_io::fs::PathExtensions;
|
||||
/// use std::old_io::fs;
|
||||
/// use std::old_io;
|
||||
///
|
||||
/// // one possible implementation of fs::walk_dir only visiting files
|
||||
/// fn visit_dirs<F>(dir: &Path, cb: &mut F) -> io::IoResult<()> where
|
||||
/// fn visit_dirs<F>(dir: &Path, cb: &mut F) -> old_io::IoResult<()> where
|
||||
/// F: FnMut(&Path),
|
||||
/// {
|
||||
/// if dir.is_dir() {
|
||||
|
|
@ -532,7 +532,7 @@ pub fn rmdir(path: &Path) -> IoResult<()> {
|
|||
/// }
|
||||
/// Ok(())
|
||||
/// } else {
|
||||
/// Err(io::standard_error(io::InvalidInput))
|
||||
/// Err(old_io::standard_error(old_io::InvalidInput))
|
||||
/// }
|
||||
/// }
|
||||
/// ```
|
||||
|
|
@ -664,7 +664,7 @@ pub fn rmdir_recursive(path: &Path) -> IoResult<()> {
|
|||
// (eg: deleted by someone else since readdir)
|
||||
match update_err(unlink(&child), path) {
|
||||
Ok(()) => (),
|
||||
Err(ref e) if e.kind == io::FileNotFound => (),
|
||||
Err(ref e) if e.kind == old_io::FileNotFound => (),
|
||||
Err(e) => return Err(e)
|
||||
}
|
||||
}
|
||||
|
|
@ -675,7 +675,7 @@ pub fn rmdir_recursive(path: &Path) -> IoResult<()> {
|
|||
let result = update_err(rmdir(&rm_stack.pop().unwrap()), path);
|
||||
match result {
|
||||
Ok(()) => (),
|
||||
Err(ref e) if e.kind == io::FileNotFound => (),
|
||||
Err(ref e) if e.kind == old_io::FileNotFound => (),
|
||||
Err(e) => return Err(e)
|
||||
}
|
||||
}
|
||||
|
|
@ -709,7 +709,7 @@ impl Reader for File {
|
|||
Ok(read) => {
|
||||
self.last_nread = read as int;
|
||||
match read {
|
||||
0 => update_err(Err(standard_error(io::EndOfFile)), self),
|
||||
0 => update_err(Err(standard_error(old_io::EndOfFile)), self),
|
||||
_ => Ok(read as uint)
|
||||
}
|
||||
},
|
||||
|
|
@ -719,7 +719,7 @@ impl Reader for File {
|
|||
}
|
||||
|
||||
impl Writer for File {
|
||||
fn write(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
fn write_all(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
self.fd.write(buf)
|
||||
.update_err("couldn't write to file",
|
||||
|e| format!("{}; path={}", e, self.path.display()))
|
||||
|
|
@ -824,10 +824,10 @@ fn access_string(access: FileAccess) -> &'static str {
|
|||
#[allow(unused_mut)]
|
||||
mod test {
|
||||
use prelude::v1::*;
|
||||
use io::{SeekSet, SeekCur, SeekEnd, Read, Open, ReadWrite, FileType};
|
||||
use io;
|
||||
use old_io::{SeekSet, SeekCur, SeekEnd, Read, Open, ReadWrite, FileType};
|
||||
use old_io;
|
||||
use str;
|
||||
use io::fs::*;
|
||||
use old_io::fs::*;
|
||||
|
||||
macro_rules! check { ($e:expr) => (
|
||||
match $e {
|
||||
|
|
@ -863,7 +863,7 @@ mod test {
|
|||
// Gee, seeing how we're testing the fs module I sure hope that we
|
||||
// at least implement this correctly!
|
||||
let TempDir(ref p) = *self;
|
||||
check!(io::fs::rmdir_recursive(p));
|
||||
check!(old_io::fs::rmdir_recursive(p));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -871,7 +871,7 @@ mod test {
|
|||
use os;
|
||||
use rand;
|
||||
let ret = os::tmpdir().join(format!("rust-{}", rand::random::<u32>()));
|
||||
check!(io::fs::mkdir(&ret, io::USER_RWX));
|
||||
check!(old_io::fs::mkdir(&ret, old_io::USER_RWX));
|
||||
TempDir(ret)
|
||||
}
|
||||
|
||||
|
|
@ -1055,7 +1055,7 @@ mod test {
|
|||
fn file_test_stat_is_correct_on_is_dir() {
|
||||
let tmpdir = tmpdir();
|
||||
let filename = &tmpdir.join("file_stat_correct_on_is_dir");
|
||||
check!(mkdir(filename, io::USER_RWX));
|
||||
check!(mkdir(filename, old_io::USER_RWX));
|
||||
let stat_res_fn = check!(stat(filename));
|
||||
assert!(stat_res_fn.kind == FileType::Directory);
|
||||
let stat_res_meth = check!(filename.stat());
|
||||
|
|
@ -1067,7 +1067,7 @@ mod test {
|
|||
fn file_test_fileinfo_false_when_checking_is_file_on_a_directory() {
|
||||
let tmpdir = tmpdir();
|
||||
let dir = &tmpdir.join("fileinfo_false_on_dir");
|
||||
check!(mkdir(dir, io::USER_RWX));
|
||||
check!(mkdir(dir, old_io::USER_RWX));
|
||||
assert!(dir.is_file() == false);
|
||||
check!(rmdir(dir));
|
||||
}
|
||||
|
|
@ -1087,7 +1087,7 @@ mod test {
|
|||
let tmpdir = tmpdir();
|
||||
let dir = &tmpdir.join("before_and_after_dir");
|
||||
assert!(!dir.exists());
|
||||
check!(mkdir(dir, io::USER_RWX));
|
||||
check!(mkdir(dir, old_io::USER_RWX));
|
||||
assert!(dir.exists());
|
||||
assert!(dir.is_dir());
|
||||
check!(rmdir(dir));
|
||||
|
|
@ -1099,7 +1099,7 @@ mod test {
|
|||
use str;
|
||||
let tmpdir = tmpdir();
|
||||
let dir = &tmpdir.join("di_readdir");
|
||||
check!(mkdir(dir, io::USER_RWX));
|
||||
check!(mkdir(dir, old_io::USER_RWX));
|
||||
let prefix = "foo";
|
||||
for n in range(0i,3) {
|
||||
let f = dir.join(format!("{}.txt", n));
|
||||
|
|
@ -1130,14 +1130,14 @@ mod test {
|
|||
fn file_test_walk_dir() {
|
||||
let tmpdir = tmpdir();
|
||||
let dir = &tmpdir.join("walk_dir");
|
||||
check!(mkdir(dir, io::USER_RWX));
|
||||
check!(mkdir(dir, old_io::USER_RWX));
|
||||
|
||||
let dir1 = &dir.join("01/02/03");
|
||||
check!(mkdir_recursive(dir1, io::USER_RWX));
|
||||
check!(mkdir_recursive(dir1, old_io::USER_RWX));
|
||||
check!(File::create(&dir1.join("04")));
|
||||
|
||||
let dir2 = &dir.join("11/12/13");
|
||||
check!(mkdir_recursive(dir2, io::USER_RWX));
|
||||
check!(mkdir_recursive(dir2, old_io::USER_RWX));
|
||||
check!(File::create(&dir2.join("14")));
|
||||
|
||||
let mut files = check!(walk_dir(dir));
|
||||
|
|
@ -1155,12 +1155,12 @@ mod test {
|
|||
|
||||
#[test]
|
||||
fn mkdir_path_already_exists_error() {
|
||||
use io::{IoError, PathAlreadyExists};
|
||||
use old_io::{IoError, PathAlreadyExists};
|
||||
|
||||
let tmpdir = tmpdir();
|
||||
let dir = &tmpdir.join("mkdir_error_twice");
|
||||
check!(mkdir(dir, io::USER_RWX));
|
||||
match mkdir(dir, io::USER_RWX) {
|
||||
check!(mkdir(dir, old_io::USER_RWX));
|
||||
match mkdir(dir, old_io::USER_RWX) {
|
||||
Err(IoError{kind:PathAlreadyExists,..}) => (),
|
||||
_ => assert!(false)
|
||||
};
|
||||
|
|
@ -1170,7 +1170,7 @@ mod test {
|
|||
fn recursive_mkdir() {
|
||||
let tmpdir = tmpdir();
|
||||
let dir = tmpdir.join("d1/d2");
|
||||
check!(mkdir_recursive(&dir, io::USER_RWX));
|
||||
check!(mkdir_recursive(&dir, old_io::USER_RWX));
|
||||
assert!(dir.is_dir())
|
||||
}
|
||||
|
||||
|
|
@ -1180,10 +1180,10 @@ mod test {
|
|||
let dir = tmpdir.join("d1");
|
||||
let file = dir.join("f1");
|
||||
|
||||
check!(mkdir_recursive(&dir, io::USER_RWX));
|
||||
check!(mkdir_recursive(&dir, old_io::USER_RWX));
|
||||
check!(File::create(&file));
|
||||
|
||||
let result = mkdir_recursive(&file, io::USER_RWX);
|
||||
let result = mkdir_recursive(&file, old_io::USER_RWX);
|
||||
|
||||
error!(result, "couldn't recursively mkdir");
|
||||
error!(result, "couldn't create directory");
|
||||
|
|
@ -1193,7 +1193,7 @@ mod test {
|
|||
|
||||
#[test]
|
||||
fn recursive_mkdir_slash() {
|
||||
check!(mkdir_recursive(&Path::new("/"), io::USER_RWX));
|
||||
check!(mkdir_recursive(&Path::new("/"), old_io::USER_RWX));
|
||||
}
|
||||
|
||||
// FIXME(#12795) depends on lstat to work on windows
|
||||
|
|
@ -1206,8 +1206,8 @@ mod test {
|
|||
let dtt = dt.join("t");
|
||||
let d2 = tmpdir.join("d2");
|
||||
let canary = d2.join("do_not_delete");
|
||||
check!(mkdir_recursive(&dtt, io::USER_RWX));
|
||||
check!(mkdir_recursive(&d2, io::USER_RWX));
|
||||
check!(mkdir_recursive(&dtt, old_io::USER_RWX));
|
||||
check!(mkdir_recursive(&d2, old_io::USER_RWX));
|
||||
check!(File::create(&canary).write(b"foo"));
|
||||
check!(symlink(&d2, &dt.join("d2")));
|
||||
check!(rmdir_recursive(&d1));
|
||||
|
|
@ -1225,7 +1225,7 @@ mod test {
|
|||
|
||||
let mut dirpath = tmpdir.path().clone();
|
||||
dirpath.push(format!("test-가一ー你好"));
|
||||
check!(mkdir(&dirpath, io::USER_RWX));
|
||||
check!(mkdir(&dirpath, old_io::USER_RWX));
|
||||
assert!(dirpath.is_dir());
|
||||
|
||||
let mut filepath = dirpath;
|
||||
|
|
@ -1243,7 +1243,7 @@ mod test {
|
|||
let tmpdir = tmpdir();
|
||||
let unicode = tmpdir.path();
|
||||
let unicode = unicode.join(format!("test-각丁ー再见"));
|
||||
check!(mkdir(&unicode, io::USER_RWX));
|
||||
check!(mkdir(&unicode, old_io::USER_RWX));
|
||||
assert!(unicode.exists());
|
||||
assert!(!Path::new("test/unicode-bogus-path-각丁ー再见").exists());
|
||||
}
|
||||
|
|
@ -1324,12 +1324,12 @@ mod test {
|
|||
let out = tmpdir.join("out.txt");
|
||||
|
||||
check!(File::create(&input));
|
||||
check!(chmod(&input, io::USER_READ));
|
||||
check!(chmod(&input, old_io::USER_READ));
|
||||
check!(copy(&input, &out));
|
||||
assert!(!check!(out.stat()).perm.intersects(io::USER_WRITE));
|
||||
assert!(!check!(out.stat()).perm.intersects(old_io::USER_WRITE));
|
||||
|
||||
check!(chmod(&input, io::USER_FILE));
|
||||
check!(chmod(&out, io::USER_FILE));
|
||||
check!(chmod(&input, old_io::USER_FILE));
|
||||
check!(chmod(&out, old_io::USER_FILE));
|
||||
}
|
||||
|
||||
#[cfg(not(windows))] // FIXME(#10264) operation not permitted?
|
||||
|
|
@ -1405,16 +1405,16 @@ mod test {
|
|||
let file = tmpdir.join("in.txt");
|
||||
|
||||
check!(File::create(&file));
|
||||
assert!(check!(stat(&file)).perm.contains(io::USER_WRITE));
|
||||
check!(chmod(&file, io::USER_READ));
|
||||
assert!(!check!(stat(&file)).perm.contains(io::USER_WRITE));
|
||||
assert!(check!(stat(&file)).perm.contains(old_io::USER_WRITE));
|
||||
check!(chmod(&file, old_io::USER_READ));
|
||||
assert!(!check!(stat(&file)).perm.contains(old_io::USER_WRITE));
|
||||
|
||||
match chmod(&tmpdir.join("foo"), io::USER_RWX) {
|
||||
match chmod(&tmpdir.join("foo"), old_io::USER_RWX) {
|
||||
Ok(..) => panic!("wanted a panic"),
|
||||
Err(..) => {}
|
||||
}
|
||||
|
||||
check!(chmod(&file, io::USER_FILE));
|
||||
check!(chmod(&file, old_io::USER_FILE));
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
@ -1422,7 +1422,7 @@ mod test {
|
|||
let tmpdir = tmpdir();
|
||||
let path = tmpdir.join("in.txt");
|
||||
|
||||
let mut file = check!(File::open_mode(&path, io::Open, io::ReadWrite));
|
||||
let mut file = check!(File::open_mode(&path, old_io::Open, old_io::ReadWrite));
|
||||
check!(file.fsync());
|
||||
check!(file.datasync());
|
||||
check!(file.write(b"foo"));
|
||||
|
|
@ -1436,7 +1436,7 @@ mod test {
|
|||
let tmpdir = tmpdir();
|
||||
let path = tmpdir.join("in.txt");
|
||||
|
||||
let mut file = check!(File::open_mode(&path, io::Open, io::ReadWrite));
|
||||
let mut file = check!(File::open_mode(&path, old_io::Open, old_io::ReadWrite));
|
||||
check!(file.write(b"foo"));
|
||||
check!(file.fsync());
|
||||
|
||||
|
|
@ -1467,41 +1467,41 @@ mod test {
|
|||
fn open_flavors() {
|
||||
let tmpdir = tmpdir();
|
||||
|
||||
match File::open_mode(&tmpdir.join("a"), io::Open, io::Read) {
|
||||
match File::open_mode(&tmpdir.join("a"), old_io::Open, old_io::Read) {
|
||||
Ok(..) => panic!(), Err(..) => {}
|
||||
}
|
||||
|
||||
// Perform each one twice to make sure that it succeeds the second time
|
||||
// (where the file exists)
|
||||
check!(File::open_mode(&tmpdir.join("b"), io::Open, io::Write));
|
||||
check!(File::open_mode(&tmpdir.join("b"), old_io::Open, old_io::Write));
|
||||
assert!(tmpdir.join("b").exists());
|
||||
check!(File::open_mode(&tmpdir.join("b"), io::Open, io::Write));
|
||||
check!(File::open_mode(&tmpdir.join("b"), old_io::Open, old_io::Write));
|
||||
|
||||
check!(File::open_mode(&tmpdir.join("c"), io::Open, io::ReadWrite));
|
||||
check!(File::open_mode(&tmpdir.join("c"), old_io::Open, old_io::ReadWrite));
|
||||
assert!(tmpdir.join("c").exists());
|
||||
check!(File::open_mode(&tmpdir.join("c"), io::Open, io::ReadWrite));
|
||||
check!(File::open_mode(&tmpdir.join("c"), old_io::Open, old_io::ReadWrite));
|
||||
|
||||
check!(File::open_mode(&tmpdir.join("d"), io::Append, io::Write));
|
||||
check!(File::open_mode(&tmpdir.join("d"), old_io::Append, old_io::Write));
|
||||
assert!(tmpdir.join("d").exists());
|
||||
check!(File::open_mode(&tmpdir.join("d"), io::Append, io::Write));
|
||||
check!(File::open_mode(&tmpdir.join("d"), old_io::Append, old_io::Write));
|
||||
|
||||
check!(File::open_mode(&tmpdir.join("e"), io::Append, io::ReadWrite));
|
||||
check!(File::open_mode(&tmpdir.join("e"), old_io::Append, old_io::ReadWrite));
|
||||
assert!(tmpdir.join("e").exists());
|
||||
check!(File::open_mode(&tmpdir.join("e"), io::Append, io::ReadWrite));
|
||||
check!(File::open_mode(&tmpdir.join("e"), old_io::Append, old_io::ReadWrite));
|
||||
|
||||
check!(File::open_mode(&tmpdir.join("f"), io::Truncate, io::Write));
|
||||
check!(File::open_mode(&tmpdir.join("f"), old_io::Truncate, old_io::Write));
|
||||
assert!(tmpdir.join("f").exists());
|
||||
check!(File::open_mode(&tmpdir.join("f"), io::Truncate, io::Write));
|
||||
check!(File::open_mode(&tmpdir.join("f"), old_io::Truncate, old_io::Write));
|
||||
|
||||
check!(File::open_mode(&tmpdir.join("g"), io::Truncate, io::ReadWrite));
|
||||
check!(File::open_mode(&tmpdir.join("g"), old_io::Truncate, old_io::ReadWrite));
|
||||
assert!(tmpdir.join("g").exists());
|
||||
check!(File::open_mode(&tmpdir.join("g"), io::Truncate, io::ReadWrite));
|
||||
check!(File::open_mode(&tmpdir.join("g"), old_io::Truncate, old_io::ReadWrite));
|
||||
|
||||
check!(File::create(&tmpdir.join("h")).write("foo".as_bytes()));
|
||||
check!(File::open_mode(&tmpdir.join("h"), io::Open, io::Read));
|
||||
check!(File::open_mode(&tmpdir.join("h"), old_io::Open, old_io::Read));
|
||||
{
|
||||
let mut f = check!(File::open_mode(&tmpdir.join("h"), io::Open,
|
||||
io::Read));
|
||||
let mut f = check!(File::open_mode(&tmpdir.join("h"), old_io::Open,
|
||||
old_io::Read));
|
||||
match f.write("wut".as_bytes()) {
|
||||
Ok(..) => panic!(), Err(..) => {}
|
||||
}
|
||||
|
|
@ -1509,15 +1509,15 @@ mod test {
|
|||
assert!(check!(stat(&tmpdir.join("h"))).size == 3,
|
||||
"write/stat failed");
|
||||
{
|
||||
let mut f = check!(File::open_mode(&tmpdir.join("h"), io::Append,
|
||||
io::Write));
|
||||
let mut f = check!(File::open_mode(&tmpdir.join("h"), old_io::Append,
|
||||
old_io::Write));
|
||||
check!(f.write("bar".as_bytes()));
|
||||
}
|
||||
assert!(check!(stat(&tmpdir.join("h"))).size == 6,
|
||||
"append didn't append");
|
||||
{
|
||||
let mut f = check!(File::open_mode(&tmpdir.join("h"), io::Truncate,
|
||||
io::Write));
|
||||
let mut f = check!(File::open_mode(&tmpdir.join("h"), old_io::Truncate,
|
||||
old_io::Write));
|
||||
check!(f.write("bar".as_bytes()));
|
||||
}
|
||||
assert!(check!(stat(&tmpdir.join("h"))).size == 3,
|
||||
|
|
@ -1529,8 +1529,9 @@ mod test {
|
|||
let tmpdir = tmpdir();
|
||||
let path = tmpdir.join("a");
|
||||
check!(File::create(&path));
|
||||
// These numbers have to be bigger than the time in the day to account for timezones
|
||||
// Windows in particular will fail in certain timezones with small enough values
|
||||
// These numbers have to be bigger than the time in the day to account
|
||||
// for timezones Windows in particular will fail in certain timezones
|
||||
// with small enough values
|
||||
check!(change_file_times(&path, 100000, 200000));
|
||||
assert_eq!(check!(path.stat()).accessed, 100000);
|
||||
assert_eq!(check!(path.stat()).modified, 200000);
|
||||
|
|
@ -1565,7 +1566,7 @@ mod test {
|
|||
let tmpdir = tmpdir();
|
||||
let path = tmpdir.join("file");
|
||||
check!(File::create(&path));
|
||||
check!(chmod(&path, io::USER_READ));
|
||||
check!(chmod(&path, old_io::USER_READ));
|
||||
check!(unlink(&path));
|
||||
}
|
||||
}
|
||||
|
|
@ -15,8 +15,8 @@
|
|||
use cmp::min;
|
||||
use option::Option::None;
|
||||
use result::Result::{Err, Ok};
|
||||
use io;
|
||||
use io::{Reader, Writer, Seek, Buffer, IoError, SeekStyle, IoResult};
|
||||
use old_io;
|
||||
use old_io::{Reader, Writer, Seek, Buffer, IoError, SeekStyle, IoResult};
|
||||
use slice::{self, AsSlice, SliceExt};
|
||||
use vec::Vec;
|
||||
|
||||
|
|
@ -25,14 +25,14 @@ const BUF_CAPACITY: uint = 128;
|
|||
fn combine(seek: SeekStyle, cur: uint, end: uint, offset: i64) -> IoResult<u64> {
|
||||
// compute offset as signed and clamp to prevent overflow
|
||||
let pos = match seek {
|
||||
io::SeekSet => 0,
|
||||
io::SeekEnd => end,
|
||||
io::SeekCur => cur,
|
||||
old_io::SeekSet => 0,
|
||||
old_io::SeekEnd => end,
|
||||
old_io::SeekCur => cur,
|
||||
} as i64;
|
||||
|
||||
if offset + pos < 0 {
|
||||
Err(IoError {
|
||||
kind: io::InvalidInput,
|
||||
kind: old_io::InvalidInput,
|
||||
desc: "invalid seek to a negative offset",
|
||||
detail: None
|
||||
})
|
||||
|
|
@ -43,7 +43,7 @@ fn combine(seek: SeekStyle, cur: uint, end: uint, offset: i64) -> IoResult<u64>
|
|||
|
||||
impl Writer for Vec<u8> {
|
||||
#[inline]
|
||||
fn write(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
fn write_all(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
self.push_all(buf);
|
||||
Ok(())
|
||||
}
|
||||
|
|
@ -55,7 +55,7 @@ impl Writer for Vec<u8> {
|
|||
///
|
||||
/// ```rust
|
||||
/// # #![allow(unused_must_use)]
|
||||
/// use std::io::MemWriter;
|
||||
/// use std::old_io::MemWriter;
|
||||
///
|
||||
/// let mut w = MemWriter::new();
|
||||
/// w.write(&[0, 1, 2]);
|
||||
|
|
@ -99,7 +99,7 @@ impl MemWriter {
|
|||
|
||||
impl Writer for MemWriter {
|
||||
#[inline]
|
||||
fn write(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
fn write_all(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
self.buf.push_all(buf);
|
||||
Ok(())
|
||||
}
|
||||
|
|
@ -111,7 +111,7 @@ impl Writer for MemWriter {
|
|||
///
|
||||
/// ```rust
|
||||
/// # #![allow(unused_must_use)]
|
||||
/// use std::io::MemReader;
|
||||
/// use std::old_io::MemReader;
|
||||
///
|
||||
/// let mut r = MemReader::new(vec!(0, 1, 2));
|
||||
///
|
||||
|
|
@ -155,7 +155,7 @@ impl MemReader {
|
|||
impl Reader for MemReader {
|
||||
#[inline]
|
||||
fn read(&mut self, buf: &mut [u8]) -> IoResult<uint> {
|
||||
if self.eof() { return Err(io::standard_error(io::EndOfFile)) }
|
||||
if self.eof() { return Err(old_io::standard_error(old_io::EndOfFile)) }
|
||||
|
||||
let write_len = min(buf.len(), self.buf.len() - self.pos);
|
||||
{
|
||||
|
|
@ -189,7 +189,7 @@ impl Buffer for MemReader {
|
|||
if self.pos < self.buf.len() {
|
||||
Ok(&self.buf[self.pos..])
|
||||
} else {
|
||||
Err(io::standard_error(io::EndOfFile))
|
||||
Err(old_io::standard_error(old_io::EndOfFile))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -200,7 +200,7 @@ impl Buffer for MemReader {
|
|||
impl<'a> Reader for &'a [u8] {
|
||||
#[inline]
|
||||
fn read(&mut self, buf: &mut [u8]) -> IoResult<uint> {
|
||||
if self.is_empty() { return Err(io::standard_error(io::EndOfFile)); }
|
||||
if self.is_empty() { return Err(old_io::standard_error(old_io::EndOfFile)); }
|
||||
|
||||
let write_len = min(buf.len(), self.len());
|
||||
{
|
||||
|
|
@ -219,7 +219,7 @@ impl<'a> Buffer for &'a [u8] {
|
|||
#[inline]
|
||||
fn fill_buf(&mut self) -> IoResult<&[u8]> {
|
||||
if self.is_empty() {
|
||||
Err(io::standard_error(io::EndOfFile))
|
||||
Err(old_io::standard_error(old_io::EndOfFile))
|
||||
} else {
|
||||
Ok(*self)
|
||||
}
|
||||
|
|
@ -241,7 +241,7 @@ impl<'a> Buffer for &'a [u8] {
|
|||
///
|
||||
/// ```rust
|
||||
/// # #![allow(unused_must_use)]
|
||||
/// use std::io::BufWriter;
|
||||
/// use std::old_io::BufWriter;
|
||||
///
|
||||
/// let mut buf = [0; 4];
|
||||
/// {
|
||||
|
|
@ -269,12 +269,12 @@ impl<'a> BufWriter<'a> {
|
|||
|
||||
impl<'a> Writer for BufWriter<'a> {
|
||||
#[inline]
|
||||
fn write(&mut self, src: &[u8]) -> IoResult<()> {
|
||||
fn write_all(&mut self, src: &[u8]) -> IoResult<()> {
|
||||
let dst = &mut self.buf[self.pos..];
|
||||
let dst_len = dst.len();
|
||||
|
||||
if dst_len == 0 {
|
||||
return Err(io::standard_error(io::EndOfFile));
|
||||
return Err(old_io::standard_error(old_io::EndOfFile));
|
||||
}
|
||||
|
||||
let src_len = src.len();
|
||||
|
|
@ -290,7 +290,7 @@ impl<'a> Writer for BufWriter<'a> {
|
|||
|
||||
self.pos += dst_len;
|
||||
|
||||
Err(io::standard_error(io::ShortWrite(dst_len)))
|
||||
Err(old_io::standard_error(old_io::ShortWrite(dst_len)))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -313,7 +313,7 @@ impl<'a> Seek for BufWriter<'a> {
|
|||
///
|
||||
/// ```rust
|
||||
/// # #![allow(unused_must_use)]
|
||||
/// use std::io::BufReader;
|
||||
/// use std::old_io::BufReader;
|
||||
///
|
||||
/// let buf = [0, 1, 2, 3];
|
||||
/// let mut r = BufReader::new(&buf);
|
||||
|
|
@ -345,7 +345,7 @@ impl<'a> BufReader<'a> {
|
|||
impl<'a> Reader for BufReader<'a> {
|
||||
#[inline]
|
||||
fn read(&mut self, buf: &mut [u8]) -> IoResult<uint> {
|
||||
if self.eof() { return Err(io::standard_error(io::EndOfFile)) }
|
||||
if self.eof() { return Err(old_io::standard_error(old_io::EndOfFile)) }
|
||||
|
||||
let write_len = min(buf.len(), self.buf.len() - self.pos);
|
||||
{
|
||||
|
|
@ -379,7 +379,7 @@ impl<'a> Buffer for BufReader<'a> {
|
|||
if self.pos < self.buf.len() {
|
||||
Ok(&self.buf[self.pos..])
|
||||
} else {
|
||||
Err(io::standard_error(io::EndOfFile))
|
||||
Err(old_io::standard_error(old_io::EndOfFile))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -390,10 +390,10 @@ impl<'a> Buffer for BufReader<'a> {
|
|||
#[cfg(test)]
|
||||
mod test {
|
||||
extern crate "test" as test_crate;
|
||||
use io::{SeekSet, SeekCur, SeekEnd, Reader, Writer, Seek};
|
||||
use old_io::{SeekSet, SeekCur, SeekEnd, Reader, Writer, Seek};
|
||||
use prelude::v1::{Ok, Err, range, Vec, Buffer, AsSlice, SliceExt};
|
||||
use prelude::v1::IteratorExt;
|
||||
use io;
|
||||
use old_io;
|
||||
use iter::repeat;
|
||||
use self::test_crate::Bencher;
|
||||
use super::*;
|
||||
|
|
@ -432,8 +432,8 @@ mod test {
|
|||
writer.write(&[]).unwrap();
|
||||
assert_eq!(writer.tell(), Ok(8));
|
||||
|
||||
assert_eq!(writer.write(&[8, 9]).err().unwrap().kind, io::ShortWrite(1));
|
||||
assert_eq!(writer.write(&[10]).err().unwrap().kind, io::EndOfFile);
|
||||
assert_eq!(writer.write(&[8, 9]).err().unwrap().kind, old_io::ShortWrite(1));
|
||||
assert_eq!(writer.write(&[10]).err().unwrap().kind, old_io::EndOfFile);
|
||||
}
|
||||
let b: &[_] = &[0, 1, 2, 3, 4, 5, 6, 7, 8];
|
||||
assert_eq!(buf, b);
|
||||
|
|
@ -476,7 +476,7 @@ mod test {
|
|||
|
||||
match writer.write(&[0, 0]) {
|
||||
Ok(..) => panic!(),
|
||||
Err(e) => assert_eq!(e.kind, io::ShortWrite(1)),
|
||||
Err(e) => assert_eq!(e.kind, old_io::ShortWrite(1)),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -18,6 +18,24 @@
|
|||
|
||||
//! I/O, including files, networking, timers, and processes
|
||||
//!
|
||||
//! > **Warning**: This module is currently called `old_io` for a reason! The
|
||||
//! > module is currently being redesigned in a number of RFCs. For more details
|
||||
//! > follow the RFC repository in connection with [RFC 517][base] or follow
|
||||
//! > some of these sub-RFCs
|
||||
//! >
|
||||
//! > * [String handling][osstr]
|
||||
//! > * [Core I/O support][core]
|
||||
//! > * [Deadlines][deadlines]
|
||||
//! > * [std::env][env]
|
||||
//! > * [std::process][process]
|
||||
//!
|
||||
//! [base]: https://github.com/rust-lang/rfcs/blob/master/text/0517-io-os-reform.md
|
||||
//! [osstr]: https://github.com/rust-lang/rfcs/pull/575
|
||||
//! [core]: https://github.com/rust-lang/rfcs/pull/576
|
||||
//! [deadlines]: https://github.com/rust-lang/rfcs/pull/577
|
||||
//! [env]: https://github.com/rust-lang/rfcs/pull/578
|
||||
//! [process]: https://github.com/rust-lang/rfcs/pull/579
|
||||
//!
|
||||
//! `std::io` provides Rust's basic I/O types,
|
||||
//! for reading and writing to files, TCP, UDP,
|
||||
//! and other types of sockets and pipes,
|
||||
|
|
@ -30,7 +48,7 @@
|
|||
//! * Read lines from stdin
|
||||
//!
|
||||
//! ```rust
|
||||
//! use std::io;
|
||||
//! use std::old_io as io;
|
||||
//!
|
||||
//! for line in io::stdin().lock().lines() {
|
||||
//! print!("{}", line.unwrap());
|
||||
|
|
@ -40,7 +58,7 @@
|
|||
//! * Read a complete file
|
||||
//!
|
||||
//! ```rust
|
||||
//! use std::io::File;
|
||||
//! use std::old_io::File;
|
||||
//!
|
||||
//! let contents = File::open(&Path::new("message.txt")).read_to_end();
|
||||
//! ```
|
||||
|
|
@ -49,19 +67,19 @@
|
|||
//!
|
||||
//! ```rust
|
||||
//! # #![allow(unused_must_use)]
|
||||
//! use std::io::File;
|
||||
//! use std::old_io::File;
|
||||
//!
|
||||
//! let mut file = File::create(&Path::new("message.txt"));
|
||||
//! file.write(b"hello, file!\n");
|
||||
//! file.write_all(b"hello, file!\n");
|
||||
//! # drop(file);
|
||||
//! # ::std::io::fs::unlink(&Path::new("message.txt"));
|
||||
//! # ::std::old_io::fs::unlink(&Path::new("message.txt"));
|
||||
//! ```
|
||||
//!
|
||||
//! * Iterate over the lines of a file
|
||||
//!
|
||||
//! ```rust,no_run
|
||||
//! use std::io::BufferedReader;
|
||||
//! use std::io::File;
|
||||
//! use std::old_io::BufferedReader;
|
||||
//! use std::old_io::File;
|
||||
//!
|
||||
//! let path = Path::new("message.txt");
|
||||
//! let mut file = BufferedReader::new(File::open(&path));
|
||||
|
|
@ -73,8 +91,8 @@
|
|||
//! * Pull the lines of a file into a vector of strings
|
||||
//!
|
||||
//! ```rust,no_run
|
||||
//! use std::io::BufferedReader;
|
||||
//! use std::io::File;
|
||||
//! use std::old_io::BufferedReader;
|
||||
//! use std::old_io::File;
|
||||
//!
|
||||
//! let path = Path::new("message.txt");
|
||||
//! let mut file = BufferedReader::new(File::open(&path));
|
||||
|
|
@ -85,14 +103,14 @@
|
|||
//!
|
||||
//! ```rust
|
||||
//! # #![allow(unused_must_use)]
|
||||
//! use std::io::TcpStream;
|
||||
//! use std::old_io::TcpStream;
|
||||
//!
|
||||
//! # // connection doesn't fail if a server is running on 8080
|
||||
//! # // locally, we still want to be type checking this code, so lets
|
||||
//! # // just stop it running (#11576)
|
||||
//! # if false {
|
||||
//! let mut socket = TcpStream::connect("127.0.0.1:8080").unwrap();
|
||||
//! socket.write(b"GET / HTTP/1.0\n\n");
|
||||
//! socket.write_all(b"GET / HTTP/1.0\n\n");
|
||||
//! let response = socket.read_to_end();
|
||||
//! # }
|
||||
//! ```
|
||||
|
|
@ -103,8 +121,8 @@
|
|||
//! # fn main() { }
|
||||
//! # fn foo() {
|
||||
//! # #![allow(dead_code)]
|
||||
//! use std::io::{TcpListener, TcpStream};
|
||||
//! use std::io::{Acceptor, Listener};
|
||||
//! use std::old_io::{TcpListener, TcpStream};
|
||||
//! use std::old_io::{Acceptor, Listener};
|
||||
//! use std::thread::Thread;
|
||||
//!
|
||||
//! let listener = TcpListener::bind("127.0.0.1:80");
|
||||
|
|
@ -156,7 +174,7 @@
|
|||
//! to be 'unwrapped' before use.
|
||||
//!
|
||||
//! These features combine in the API to allow for expressions like
|
||||
//! `File::create(&Path::new("diary.txt")).write(b"Met a girl.\n")`
|
||||
//! `File::create(&Path::new("diary.txt")).write_all(b"Met a girl.\n")`
|
||||
//! without having to worry about whether "diary.txt" exists or whether
|
||||
//! the write succeeds. As written, if either `new` or `write_line`
|
||||
//! encounters an error then the result of the entire expression will
|
||||
|
|
@ -166,14 +184,14 @@
|
|||
//!
|
||||
//! ```rust
|
||||
//! # #![allow(unused_must_use)]
|
||||
//! use std::io::File;
|
||||
//! use std::old_io::File;
|
||||
//!
|
||||
//! match File::create(&Path::new("diary.txt")).write(b"Met a girl.\n") {
|
||||
//! match File::create(&Path::new("diary.txt")).write_all(b"Met a girl.\n") {
|
||||
//! Ok(()) => (), // succeeded
|
||||
//! Err(e) => println!("failed to write to my diary: {}", e),
|
||||
//! }
|
||||
//!
|
||||
//! # ::std::io::fs::unlink(&Path::new("diary.txt"));
|
||||
//! # ::std::old_io::fs::unlink(&Path::new("diary.txt"));
|
||||
//! ```
|
||||
//!
|
||||
//! So what actually happens if `create` encounters an error?
|
||||
|
|
@ -199,7 +217,7 @@
|
|||
//! If you wanted to read several `u32`s from a file and return their product:
|
||||
//!
|
||||
//! ```rust
|
||||
//! use std::io::{File, IoResult};
|
||||
//! use std::old_io::{File, IoResult};
|
||||
//!
|
||||
//! fn file_product(p: &Path) -> IoResult<u32> {
|
||||
//! let mut f = File::open(p);
|
||||
|
|
@ -925,9 +943,9 @@ unsafe fn slice_vec_capacity<'a, T>(v: &'a mut Vec<T>, start: uint, end: uint) -
|
|||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// use std::io;
|
||||
/// use std::io::ByRefReader;
|
||||
/// use std::io::util::LimitReader;
|
||||
/// use std::old_io as io;
|
||||
/// use std::old_io::ByRefReader;
|
||||
/// use std::old_io::util::LimitReader;
|
||||
///
|
||||
/// fn process_input<R: Reader>(r: R) {}
|
||||
///
|
||||
|
|
@ -979,7 +997,11 @@ pub trait Writer {
|
|||
/// `Err`. Note that it is considered an error if the entire buffer could
|
||||
/// not be written, and if an error is returned then it is unknown how much
|
||||
/// data (if any) was actually written.
|
||||
fn write(&mut self, buf: &[u8]) -> IoResult<()>;
|
||||
fn write_all(&mut self, buf: &[u8]) -> IoResult<()>;
|
||||
|
||||
/// Deprecated, this method was renamed to `write_all`
|
||||
#[deprecated = "renamed to `write_all`"]
|
||||
fn write(&mut self, buf: &[u8]) -> IoResult<()> { self.write_all(buf) }
|
||||
|
||||
/// Flush this output stream, ensuring that all intermediately buffered
|
||||
/// contents reach their destination.
|
||||
|
|
@ -1008,7 +1030,7 @@ pub trait Writer {
|
|||
|
||||
impl<'a, T: ?Sized + Writer> fmt::Writer for Adaptor<'a, T> {
|
||||
fn write_str(&mut self, s: &str) -> fmt::Result {
|
||||
match self.inner.write(s.as_bytes()) {
|
||||
match self.inner.write_all(s.as_bytes()) {
|
||||
Ok(()) => Ok(()),
|
||||
Err(e) => {
|
||||
self.error = Err(e);
|
||||
|
|
@ -1034,7 +1056,7 @@ pub trait Writer {
|
|||
/// converted byte-array instead.
|
||||
#[inline]
|
||||
fn write_str(&mut self, s: &str) -> IoResult<()> {
|
||||
self.write(s.as_bytes())
|
||||
self.write_all(s.as_bytes())
|
||||
}
|
||||
|
||||
/// Writes a string into this sink, and then writes a literal newline (`\n`)
|
||||
|
|
@ -1046,7 +1068,7 @@ pub trait Writer {
|
|||
/// that the `write` method is used specifically instead.
|
||||
#[inline]
|
||||
fn write_line(&mut self, s: &str) -> IoResult<()> {
|
||||
self.write_str(s).and_then(|()| self.write(&[b'\n']))
|
||||
self.write_str(s).and_then(|()| self.write_all(&[b'\n']))
|
||||
}
|
||||
|
||||
/// Write a single char, encoded as UTF-8.
|
||||
|
|
@ -1054,7 +1076,7 @@ pub trait Writer {
|
|||
fn write_char(&mut self, c: char) -> IoResult<()> {
|
||||
let mut buf = [0u8; 4];
|
||||
let n = c.encode_utf8(buf.as_mut_slice()).unwrap_or(0);
|
||||
self.write(&buf[..n])
|
||||
self.write_all(&buf[..n])
|
||||
}
|
||||
|
||||
/// Write the result of passing n through `int::to_str_bytes`.
|
||||
|
|
@ -1072,61 +1094,61 @@ pub trait Writer {
|
|||
/// Write a little-endian uint (number of bytes depends on system).
|
||||
#[inline]
|
||||
fn write_le_uint(&mut self, n: uint) -> IoResult<()> {
|
||||
extensions::u64_to_le_bytes(n as u64, uint::BYTES, |v| self.write(v))
|
||||
extensions::u64_to_le_bytes(n as u64, uint::BYTES, |v| self.write_all(v))
|
||||
}
|
||||
|
||||
/// Write a little-endian int (number of bytes depends on system).
|
||||
#[inline]
|
||||
fn write_le_int(&mut self, n: int) -> IoResult<()> {
|
||||
extensions::u64_to_le_bytes(n as u64, int::BYTES, |v| self.write(v))
|
||||
extensions::u64_to_le_bytes(n as u64, int::BYTES, |v| self.write_all(v))
|
||||
}
|
||||
|
||||
/// Write a big-endian uint (number of bytes depends on system).
|
||||
#[inline]
|
||||
fn write_be_uint(&mut self, n: uint) -> IoResult<()> {
|
||||
extensions::u64_to_be_bytes(n as u64, uint::BYTES, |v| self.write(v))
|
||||
extensions::u64_to_be_bytes(n as u64, uint::BYTES, |v| self.write_all(v))
|
||||
}
|
||||
|
||||
/// Write a big-endian int (number of bytes depends on system).
|
||||
#[inline]
|
||||
fn write_be_int(&mut self, n: int) -> IoResult<()> {
|
||||
extensions::u64_to_be_bytes(n as u64, int::BYTES, |v| self.write(v))
|
||||
extensions::u64_to_be_bytes(n as u64, int::BYTES, |v| self.write_all(v))
|
||||
}
|
||||
|
||||
/// Write a big-endian u64 (8 bytes).
|
||||
#[inline]
|
||||
fn write_be_u64(&mut self, n: u64) -> IoResult<()> {
|
||||
extensions::u64_to_be_bytes(n, 8u, |v| self.write(v))
|
||||
extensions::u64_to_be_bytes(n, 8u, |v| self.write_all(v))
|
||||
}
|
||||
|
||||
/// Write a big-endian u32 (4 bytes).
|
||||
#[inline]
|
||||
fn write_be_u32(&mut self, n: u32) -> IoResult<()> {
|
||||
extensions::u64_to_be_bytes(n as u64, 4u, |v| self.write(v))
|
||||
extensions::u64_to_be_bytes(n as u64, 4u, |v| self.write_all(v))
|
||||
}
|
||||
|
||||
/// Write a big-endian u16 (2 bytes).
|
||||
#[inline]
|
||||
fn write_be_u16(&mut self, n: u16) -> IoResult<()> {
|
||||
extensions::u64_to_be_bytes(n as u64, 2u, |v| self.write(v))
|
||||
extensions::u64_to_be_bytes(n as u64, 2u, |v| self.write_all(v))
|
||||
}
|
||||
|
||||
/// Write a big-endian i64 (8 bytes).
|
||||
#[inline]
|
||||
fn write_be_i64(&mut self, n: i64) -> IoResult<()> {
|
||||
extensions::u64_to_be_bytes(n as u64, 8u, |v| self.write(v))
|
||||
extensions::u64_to_be_bytes(n as u64, 8u, |v| self.write_all(v))
|
||||
}
|
||||
|
||||
/// Write a big-endian i32 (4 bytes).
|
||||
#[inline]
|
||||
fn write_be_i32(&mut self, n: i32) -> IoResult<()> {
|
||||
extensions::u64_to_be_bytes(n as u64, 4u, |v| self.write(v))
|
||||
extensions::u64_to_be_bytes(n as u64, 4u, |v| self.write_all(v))
|
||||
}
|
||||
|
||||
/// Write a big-endian i16 (2 bytes).
|
||||
#[inline]
|
||||
fn write_be_i16(&mut self, n: i16) -> IoResult<()> {
|
||||
extensions::u64_to_be_bytes(n as u64, 2u, |v| self.write(v))
|
||||
extensions::u64_to_be_bytes(n as u64, 2u, |v| self.write_all(v))
|
||||
}
|
||||
|
||||
/// Write a big-endian IEEE754 double-precision floating-point (8 bytes).
|
||||
|
|
@ -1148,37 +1170,37 @@ pub trait Writer {
|
|||
/// Write a little-endian u64 (8 bytes).
|
||||
#[inline]
|
||||
fn write_le_u64(&mut self, n: u64) -> IoResult<()> {
|
||||
extensions::u64_to_le_bytes(n, 8u, |v| self.write(v))
|
||||
extensions::u64_to_le_bytes(n, 8u, |v| self.write_all(v))
|
||||
}
|
||||
|
||||
/// Write a little-endian u32 (4 bytes).
|
||||
#[inline]
|
||||
fn write_le_u32(&mut self, n: u32) -> IoResult<()> {
|
||||
extensions::u64_to_le_bytes(n as u64, 4u, |v| self.write(v))
|
||||
extensions::u64_to_le_bytes(n as u64, 4u, |v| self.write_all(v))
|
||||
}
|
||||
|
||||
/// Write a little-endian u16 (2 bytes).
|
||||
#[inline]
|
||||
fn write_le_u16(&mut self, n: u16) -> IoResult<()> {
|
||||
extensions::u64_to_le_bytes(n as u64, 2u, |v| self.write(v))
|
||||
extensions::u64_to_le_bytes(n as u64, 2u, |v| self.write_all(v))
|
||||
}
|
||||
|
||||
/// Write a little-endian i64 (8 bytes).
|
||||
#[inline]
|
||||
fn write_le_i64(&mut self, n: i64) -> IoResult<()> {
|
||||
extensions::u64_to_le_bytes(n as u64, 8u, |v| self.write(v))
|
||||
extensions::u64_to_le_bytes(n as u64, 8u, |v| self.write_all(v))
|
||||
}
|
||||
|
||||
/// Write a little-endian i32 (4 bytes).
|
||||
#[inline]
|
||||
fn write_le_i32(&mut self, n: i32) -> IoResult<()> {
|
||||
extensions::u64_to_le_bytes(n as u64, 4u, |v| self.write(v))
|
||||
extensions::u64_to_le_bytes(n as u64, 4u, |v| self.write_all(v))
|
||||
}
|
||||
|
||||
/// Write a little-endian i16 (2 bytes).
|
||||
#[inline]
|
||||
fn write_le_i16(&mut self, n: i16) -> IoResult<()> {
|
||||
extensions::u64_to_le_bytes(n as u64, 2u, |v| self.write(v))
|
||||
extensions::u64_to_le_bytes(n as u64, 2u, |v| self.write_all(v))
|
||||
}
|
||||
|
||||
/// Write a little-endian IEEE754 double-precision floating-point
|
||||
|
|
@ -1202,13 +1224,13 @@ pub trait Writer {
|
|||
/// Write a u8 (1 byte).
|
||||
#[inline]
|
||||
fn write_u8(&mut self, n: u8) -> IoResult<()> {
|
||||
self.write(&[n])
|
||||
self.write_all(&[n])
|
||||
}
|
||||
|
||||
/// Write an i8 (1 byte).
|
||||
#[inline]
|
||||
fn write_i8(&mut self, n: i8) -> IoResult<()> {
|
||||
self.write(&[n as u8])
|
||||
self.write_all(&[n as u8])
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1230,8 +1252,8 @@ impl<T: Writer> ByRefWriter for T {
|
|||
|
||||
impl<'a> Writer for Box<Writer+'a> {
|
||||
#[inline]
|
||||
fn write(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
(&mut **self).write(buf)
|
||||
fn write_all(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
(&mut **self).write_all(buf)
|
||||
}
|
||||
|
||||
#[inline]
|
||||
|
|
@ -1242,7 +1264,7 @@ impl<'a> Writer for Box<Writer+'a> {
|
|||
|
||||
impl<'a> Writer for &'a mut (Writer+'a) {
|
||||
#[inline]
|
||||
fn write(&mut self, buf: &[u8]) -> IoResult<()> { (**self).write(buf) }
|
||||
fn write_all(&mut self, buf: &[u8]) -> IoResult<()> { (**self).write_all(buf) }
|
||||
|
||||
#[inline]
|
||||
fn flush(&mut self) -> IoResult<()> { (**self).flush() }
|
||||
|
|
@ -1254,8 +1276,8 @@ impl<'a> Writer for &'a mut (Writer+'a) {
|
|||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// use std::io::util::TeeReader;
|
||||
/// use std::io::{stdin, ByRefWriter};
|
||||
/// use std::old_io::util::TeeReader;
|
||||
/// use std::old_io::{stdin, ByRefWriter};
|
||||
///
|
||||
/// fn process_input<R: Reader>(r: R) {}
|
||||
///
|
||||
|
|
@ -1277,7 +1299,7 @@ pub struct RefWriter<'a, W:'a> {
|
|||
|
||||
impl<'a, W: Writer> Writer for RefWriter<'a, W> {
|
||||
#[inline]
|
||||
fn write(&mut self, buf: &[u8]) -> IoResult<()> { self.inner.write(buf) }
|
||||
fn write_all(&mut self, buf: &[u8]) -> IoResult<()> { self.inner.write_all(buf) }
|
||||
|
||||
#[inline]
|
||||
fn flush(&mut self) -> IoResult<()> { self.inner.flush() }
|
||||
|
|
@ -1379,7 +1401,7 @@ pub trait Buffer: Reader {
|
|||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// use std::io::BufReader;
|
||||
/// use std::old_io::BufReader;
|
||||
///
|
||||
/// let mut reader = BufReader::new(b"hello\nworld");
|
||||
/// assert_eq!("hello\n", &*reader.read_line().unwrap());
|
||||
|
|
@ -1601,7 +1623,7 @@ impl<'a, T, A: ?Sized + Acceptor<T>> Iterator for IncomingConnections<'a, A> {
|
|||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// use std::io;
|
||||
/// use std::old_io as io;
|
||||
///
|
||||
/// let eof = io::standard_error(io::EndOfFile);
|
||||
/// let einval = io::standard_error(io::InvalidInput);
|
||||
|
|
@ -1691,7 +1713,7 @@ pub enum FileType {
|
|||
/// ```no_run
|
||||
/// # #![allow(unstable)]
|
||||
///
|
||||
/// use std::io::fs::PathExtensions;
|
||||
/// use std::old_io::fs::PathExtensions;
|
||||
///
|
||||
/// let info = match Path::new("foo.txt").stat() {
|
||||
/// Ok(stat) => stat,
|
||||
|
|
@ -20,8 +20,8 @@ pub use self::Flag::*;
|
|||
pub use self::Protocol::*;
|
||||
|
||||
use iter::IteratorExt;
|
||||
use io::{IoResult};
|
||||
use io::net::ip::{SocketAddr, IpAddr};
|
||||
use old_io::{IoResult};
|
||||
use old_io::net::ip::{SocketAddr, IpAddr};
|
||||
use option::Option;
|
||||
use option::Option::{Some, None};
|
||||
use string::String;
|
||||
|
|
@ -114,7 +114,7 @@ fn lookup(hostname: Option<&str>, servname: Option<&str>, hint: Option<Hint>)
|
|||
mod test {
|
||||
use prelude::v1::*;
|
||||
use super::*;
|
||||
use io::net::ip::*;
|
||||
use old_io::net::ip::*;
|
||||
|
||||
#[test]
|
||||
fn dns_smoke_test() {
|
||||
|
|
@ -19,8 +19,8 @@ pub use self::IpAddr::*;
|
|||
|
||||
use boxed::Box;
|
||||
use fmt;
|
||||
use io::{self, IoResult, IoError};
|
||||
use io::net;
|
||||
use old_io::{self, IoResult, IoError};
|
||||
use old_io::net;
|
||||
use iter::{Iterator, IteratorExt};
|
||||
use ops::{FnOnce, FnMut};
|
||||
use option::Option;
|
||||
|
|
@ -406,9 +406,9 @@ impl FromStr for SocketAddr {
|
|||
/// ```rust,no_run
|
||||
/// # #![allow(unused_must_use)]
|
||||
///
|
||||
/// use std::io::{TcpStream, TcpListener};
|
||||
/// use std::io::net::udp::UdpSocket;
|
||||
/// use std::io::net::ip::{Ipv4Addr, SocketAddr};
|
||||
/// use std::old_io::{TcpStream, TcpListener};
|
||||
/// use std::old_io::net::udp::UdpSocket;
|
||||
/// use std::old_io::net::ip::{Ipv4Addr, SocketAddr};
|
||||
///
|
||||
/// fn main() {
|
||||
/// // The following lines are equivalent modulo possible "localhost" name resolution
|
||||
|
|
@ -438,7 +438,7 @@ pub trait ToSocketAddr {
|
|||
fn to_socket_addr(&self) -> IoResult<SocketAddr> {
|
||||
self.to_socket_addr_all()
|
||||
.and_then(|v| v.into_iter().next().ok_or_else(|| IoError {
|
||||
kind: io::InvalidInput,
|
||||
kind: old_io::InvalidInput,
|
||||
desc: "no address available",
|
||||
detail: None
|
||||
}))
|
||||
|
|
@ -481,7 +481,7 @@ fn parse_and_resolve_socket_addr(s: &str) -> IoResult<Vec<SocketAddr>> {
|
|||
match $e {
|
||||
Some(r) => r,
|
||||
None => return Err(IoError {
|
||||
kind: io::InvalidInput,
|
||||
kind: old_io::InvalidInput,
|
||||
desc: $msg,
|
||||
detail: None
|
||||
})
|
||||
|
|
@ -526,7 +526,7 @@ impl<'a> ToSocketAddr for &'a str {
|
|||
parse_and_resolve_socket_addr(*self)
|
||||
.and_then(|v| v.into_iter().next()
|
||||
.ok_or_else(|| IoError {
|
||||
kind: io::InvalidInput,
|
||||
kind: old_io::InvalidInput,
|
||||
desc: "no address available",
|
||||
detail: None
|
||||
})
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
//! Networking I/O
|
||||
|
||||
use io::{IoError, IoResult, InvalidInput};
|
||||
use old_io::{IoError, IoResult, InvalidInput};
|
||||
use ops::FnMut;
|
||||
use option::Option::None;
|
||||
use result::Result::{Ok, Err};
|
||||
|
|
@ -24,7 +24,7 @@ use prelude::v1::*;
|
|||
|
||||
use ffi::CString;
|
||||
use path::BytesContainer;
|
||||
use io::{Listener, Acceptor, IoResult, TimedOut, standard_error};
|
||||
use old_io::{Listener, Acceptor, IoResult, TimedOut, standard_error};
|
||||
use sys::pipe::UnixAcceptor as UnixAcceptorImp;
|
||||
use sys::pipe::UnixListener as UnixListenerImp;
|
||||
use sys::pipe::UnixStream as UnixStreamImp;
|
||||
|
|
@ -48,7 +48,7 @@ impl UnixStream {
|
|||
///
|
||||
/// ```rust
|
||||
/// # #![allow(unused_must_use)]
|
||||
/// use std::io::net::pipe::UnixStream;
|
||||
/// use std::old_io::net::pipe::UnixStream;
|
||||
///
|
||||
/// let server = Path::new("path/to/my/socket");
|
||||
/// let mut stream = UnixStream::connect(&server);
|
||||
|
|
@ -142,7 +142,7 @@ impl Reader for UnixStream {
|
|||
}
|
||||
|
||||
impl Writer for UnixStream {
|
||||
fn write(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
fn write_all(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
self.inner.write(buf)
|
||||
}
|
||||
}
|
||||
|
|
@ -169,8 +169,8 @@ impl UnixListener {
|
|||
///
|
||||
/// ```
|
||||
/// # fn foo() {
|
||||
/// use std::io::net::pipe::UnixListener;
|
||||
/// use std::io::{Listener, Acceptor};
|
||||
/// use std::old_io::net::pipe::UnixListener;
|
||||
/// use std::old_io::{Listener, Acceptor};
|
||||
///
|
||||
/// let server = Path::new("/path/to/my/socket");
|
||||
/// let stream = UnixListener::bind(&server);
|
||||
|
|
@ -270,11 +270,11 @@ impl sys_common::AsInner<UnixAcceptorImp> for UnixAcceptor {
|
|||
mod tests {
|
||||
use prelude::v1::*;
|
||||
|
||||
use io::fs::PathExtensions;
|
||||
use io::{EndOfFile, TimedOut, ShortWrite, IoError, ConnectionReset};
|
||||
use io::{NotConnected, BrokenPipe, FileNotFound, InvalidInput, OtherIoError};
|
||||
use io::{PermissionDenied, Acceptor, Listener};
|
||||
use io::test::*;
|
||||
use old_io::fs::PathExtensions;
|
||||
use old_io::{EndOfFile, TimedOut, ShortWrite, IoError, ConnectionReset};
|
||||
use old_io::{NotConnected, BrokenPipe, FileNotFound, InvalidInput, OtherIoError};
|
||||
use old_io::{PermissionDenied, Acceptor, Listener};
|
||||
use old_io::test::*;
|
||||
use super::*;
|
||||
use sync::mpsc::channel;
|
||||
use thread::Thread;
|
||||
|
|
@ -18,11 +18,11 @@
|
|||
//! listener (socket server) implements the `Listener` and `Acceptor` traits.
|
||||
|
||||
use clone::Clone;
|
||||
use io::IoResult;
|
||||
use old_io::IoResult;
|
||||
use result::Result::Err;
|
||||
use io::net::ip::{SocketAddr, ToSocketAddr};
|
||||
use io::{Reader, Writer, Listener, Acceptor};
|
||||
use io::{standard_error, TimedOut};
|
||||
use old_io::net::ip::{SocketAddr, ToSocketAddr};
|
||||
use old_io::{Reader, Writer, Listener, Acceptor};
|
||||
use old_io::{standard_error, TimedOut};
|
||||
use option::Option;
|
||||
use option::Option::{None, Some};
|
||||
use time::Duration;
|
||||
|
|
@ -41,7 +41,7 @@ use sys_common;
|
|||
/// # Example
|
||||
///
|
||||
/// ```no_run
|
||||
/// use std::io::TcpStream;
|
||||
/// use std::old_io::TcpStream;
|
||||
///
|
||||
/// {
|
||||
/// let mut stream = TcpStream::connect("127.0.0.1:34254");
|
||||
|
|
@ -133,8 +133,8 @@ impl TcpStream {
|
|||
///
|
||||
/// ```no_run
|
||||
/// # #![allow(unused_must_use)]
|
||||
/// use std::io::timer;
|
||||
/// use std::io::TcpStream;
|
||||
/// use std::old_io::timer;
|
||||
/// use std::old_io::TcpStream;
|
||||
/// use std::time::Duration;
|
||||
/// use std::thread::Thread;
|
||||
///
|
||||
|
|
@ -258,7 +258,7 @@ impl Reader for TcpStream {
|
|||
}
|
||||
|
||||
impl Writer for TcpStream {
|
||||
fn write(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
fn write_all(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
self.inner.write(buf)
|
||||
}
|
||||
}
|
||||
|
|
@ -276,8 +276,8 @@ impl sys_common::AsInner<TcpStreamImp> for TcpStream {
|
|||
///
|
||||
/// ```
|
||||
/// # fn foo() {
|
||||
/// use std::io::{TcpListener, TcpStream};
|
||||
/// use std::io::{Acceptor, Listener};
|
||||
/// use std::old_io::{TcpListener, TcpStream};
|
||||
/// use std::old_io::{Acceptor, Listener};
|
||||
/// use std::thread::Thread;
|
||||
///
|
||||
/// let listener = TcpListener::bind("127.0.0.1:80").unwrap();
|
||||
|
|
@ -373,8 +373,8 @@ impl TcpAcceptor {
|
|||
///
|
||||
/// ```no_run
|
||||
/// # #![allow(unstable)]
|
||||
/// use std::io::TcpListener;
|
||||
/// use std::io::{Listener, Acceptor, TimedOut};
|
||||
/// use std::old_io::TcpListener;
|
||||
/// use std::old_io::{Listener, Acceptor, TimedOut};
|
||||
///
|
||||
/// let mut a = TcpListener::bind("127.0.0.1:8482").listen().unwrap();
|
||||
///
|
||||
|
|
@ -417,7 +417,7 @@ impl TcpAcceptor {
|
|||
///
|
||||
/// ```
|
||||
/// # #![allow(unstable)]
|
||||
/// use std::io::{TcpListener, Listener, Acceptor, EndOfFile};
|
||||
/// use std::old_io::{TcpListener, Listener, Acceptor, EndOfFile};
|
||||
/// use std::thread::Thread;
|
||||
///
|
||||
/// let mut a = TcpListener::bind("127.0.0.1:8482").listen().unwrap();
|
||||
|
|
@ -486,13 +486,13 @@ mod test {
|
|||
|
||||
use sync::mpsc::channel;
|
||||
use thread::Thread;
|
||||
use io::net::tcp::*;
|
||||
use io::net::ip::*;
|
||||
use io::test::*;
|
||||
use io::{EndOfFile, TimedOut, ShortWrite, IoError};
|
||||
use io::{ConnectionRefused, BrokenPipe, ConnectionAborted};
|
||||
use io::{ConnectionReset, NotConnected, PermissionDenied, OtherIoError};
|
||||
use io::{Acceptor, Listener};
|
||||
use old_io::net::tcp::*;
|
||||
use old_io::net::ip::*;
|
||||
use old_io::test::*;
|
||||
use old_io::{EndOfFile, TimedOut, ShortWrite, IoError};
|
||||
use old_io::{ConnectionRefused, BrokenPipe, ConnectionAborted};
|
||||
use old_io::{ConnectionReset, NotConnected, PermissionDenied, OtherIoError};
|
||||
use old_io::{Acceptor, Listener};
|
||||
|
||||
// FIXME #11530 this fails on android because tests are run as root
|
||||
#[cfg_attr(any(windows, target_os = "android"), ignore)]
|
||||
|
|
@ -16,8 +16,8 @@
|
|||
//! datagram protocol.
|
||||
|
||||
use clone::Clone;
|
||||
use io::net::ip::{SocketAddr, IpAddr, ToSocketAddr};
|
||||
use io::IoResult;
|
||||
use old_io::net::ip::{SocketAddr, IpAddr, ToSocketAddr};
|
||||
use old_io::IoResult;
|
||||
use option::Option;
|
||||
use sys::udp::UdpSocket as UdpSocketImp;
|
||||
use sys_common;
|
||||
|
|
@ -34,8 +34,8 @@ use sys_common;
|
|||
/// # #![allow(unused_must_use)]
|
||||
/// #![feature(slicing_syntax)]
|
||||
///
|
||||
/// use std::io::net::udp::UdpSocket;
|
||||
/// use std::io::net::ip::{Ipv4Addr, SocketAddr};
|
||||
/// use std::old_io::net::udp::UdpSocket;
|
||||
/// use std::old_io::net::ip::{Ipv4Addr, SocketAddr};
|
||||
/// fn main() {
|
||||
/// let addr = SocketAddr { ip: Ipv4Addr(127, 0, 0, 1), port: 34254 };
|
||||
/// let mut socket = match UdpSocket::bind(addr) {
|
||||
|
|
@ -181,9 +181,9 @@ mod test {
|
|||
use prelude::v1::*;
|
||||
|
||||
use sync::mpsc::channel;
|
||||
use io::net::ip::*;
|
||||
use io::test::*;
|
||||
use io::{IoError, TimedOut, PermissionDenied, ShortWrite};
|
||||
use old_io::net::ip::*;
|
||||
use old_io::test::*;
|
||||
use old_io::{IoError, TimedOut, PermissionDenied, ShortWrite};
|
||||
use super::*;
|
||||
use thread::Thread;
|
||||
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
use prelude::v1::*;
|
||||
|
||||
use io::IoResult;
|
||||
use old_io::IoResult;
|
||||
use libc;
|
||||
use sync::Arc;
|
||||
|
||||
|
|
@ -49,7 +49,7 @@ impl PipeStream {
|
|||
/// # #![allow(unused_must_use)]
|
||||
/// extern crate libc;
|
||||
///
|
||||
/// use std::io::pipe::PipeStream;
|
||||
/// use std::old_io::pipe::PipeStream;
|
||||
///
|
||||
/// fn main() {
|
||||
/// let mut pipe = PipeStream::open(libc::STDERR_FILENO);
|
||||
|
|
@ -105,7 +105,7 @@ impl Reader for PipeStream {
|
|||
}
|
||||
|
||||
impl Writer for PipeStream {
|
||||
fn write(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
fn write_all(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
self.inner.write(buf)
|
||||
}
|
||||
}
|
||||
|
|
@ -120,7 +120,7 @@ mod test {
|
|||
#[test]
|
||||
fn partial_read() {
|
||||
use os;
|
||||
use io::pipe::PipeStream;
|
||||
use old_io::pipe::PipeStream;
|
||||
|
||||
let os::Pipe { reader, writer } = unsafe { os::pipe().unwrap() };
|
||||
let out = PipeStream::open(writer);
|
||||
|
|
@ -21,9 +21,9 @@ use prelude::v1::*;
|
|||
use collections::HashMap;
|
||||
use ffi::CString;
|
||||
use fmt;
|
||||
use io::pipe::{PipeStream, PipePair};
|
||||
use io::{IoResult, IoError};
|
||||
use io;
|
||||
use old_io::pipe::{PipeStream, PipePair};
|
||||
use old_io::{IoResult, IoError};
|
||||
use old_io;
|
||||
use libc;
|
||||
use os;
|
||||
use path::BytesContainer;
|
||||
|
|
@ -58,7 +58,7 @@ use thread::Thread;
|
|||
/// # Example
|
||||
///
|
||||
/// ```should_fail
|
||||
/// use std::io::Command;
|
||||
/// use std::old_io::Command;
|
||||
///
|
||||
/// let mut child = match Command::new("/bin/cat").arg("file.txt").spawn() {
|
||||
/// Ok(child) => child,
|
||||
|
|
@ -159,7 +159,7 @@ pub type EnvMap = HashMap<EnvKey, CString>;
|
|||
/// to be changed (for example, by adding arguments) prior to spawning:
|
||||
///
|
||||
/// ```
|
||||
/// use std::io::Command;
|
||||
/// use std::old_io::Command;
|
||||
///
|
||||
/// let mut process = match Command::new("sh").arg("-c").arg("echo hello").spawn() {
|
||||
/// Ok(p) => p,
|
||||
|
|
@ -359,7 +359,7 @@ impl Command {
|
|||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// use std::io::Command;
|
||||
/// use std::old_io::Command;
|
||||
///
|
||||
/// let output = match Command::new("cat").arg("foot.txt").output() {
|
||||
/// Ok(output) => output,
|
||||
|
|
@ -380,7 +380,7 @@ impl Command {
|
|||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// use std::io::Command;
|
||||
/// use std::old_io::Command;
|
||||
///
|
||||
/// let status = match Command::new("ls").status() {
|
||||
/// Ok(status) => status,
|
||||
|
|
@ -583,7 +583,7 @@ impl Process {
|
|||
// newer process that happens to have the same (re-used) id
|
||||
if self.exit_code.is_some() {
|
||||
return Err(IoError {
|
||||
kind: io::InvalidInput,
|
||||
kind: old_io::InvalidInput,
|
||||
desc: "invalid argument: can't kill an exited process",
|
||||
detail: None,
|
||||
})
|
||||
|
|
@ -654,8 +654,8 @@ impl Process {
|
|||
///
|
||||
/// ```no_run
|
||||
/// # #![allow(unstable)]
|
||||
/// use std::io::{Command, IoResult};
|
||||
/// use std::io::process::ProcessExit;
|
||||
/// use std::old_io::{Command, IoResult};
|
||||
/// use std::old_io::process::ProcessExit;
|
||||
///
|
||||
/// fn run_gracefully(prog: &str) -> IoResult<ProcessExit> {
|
||||
/// let mut p = try!(Command::new("long-running-process").spawn());
|
||||
|
|
@ -698,7 +698,7 @@ impl Process {
|
|||
/// fail.
|
||||
pub fn wait_with_output(mut self) -> IoResult<ProcessOutput> {
|
||||
drop(self.stdin.take());
|
||||
fn read(stream: Option<io::PipeStream>) -> Receiver<IoResult<Vec<u8>>> {
|
||||
fn read(stream: Option<old_io::PipeStream>) -> Receiver<IoResult<Vec<u8>>> {
|
||||
let (tx, rx) = channel();
|
||||
match stream {
|
||||
Some(stream) => {
|
||||
|
|
@ -752,12 +752,12 @@ impl Drop for Process {
|
|||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use io::{Truncate, Write, TimedOut, timer, process, FileNotFound};
|
||||
use old_io::{Truncate, Write, TimedOut, timer, process, FileNotFound};
|
||||
use prelude::v1::{Ok, Err, range, drop, Some, None, Vec};
|
||||
use prelude::v1::{Path, String, Reader, Writer, Clone};
|
||||
use prelude::v1::{SliceExt, Str, StrExt, AsSlice, ToString, GenericPath};
|
||||
use io::fs::PathExtensions;
|
||||
use io::timer::*;
|
||||
use old_io::fs::PathExtensions;
|
||||
use old_io::timer::*;
|
||||
use rt::running_on_valgrind;
|
||||
use str;
|
||||
use super::{CreatePipe};
|
||||
|
|
@ -19,9 +19,9 @@ use result::Result::{Ok, Err};
|
|||
use super::{Reader, Writer, Listener, Acceptor, Seek, SeekStyle, IoResult};
|
||||
|
||||
impl<W: Writer> Writer for IoResult<W> {
|
||||
fn write(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
fn write_all(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
match *self {
|
||||
Ok(ref mut writer) => writer.write(buf),
|
||||
Ok(ref mut writer) => writer.write_all(buf),
|
||||
Err(ref e) => Err((*e).clone())
|
||||
}
|
||||
}
|
||||
|
|
@ -80,34 +80,34 @@ impl<T, A: Acceptor<T>> Acceptor<T> for IoResult<A> {
|
|||
mod test {
|
||||
use prelude::v1::*;
|
||||
use super::super::mem::*;
|
||||
use io;
|
||||
use old_io;
|
||||
|
||||
#[test]
|
||||
fn test_option_writer() {
|
||||
let mut writer: io::IoResult<Vec<u8>> = Ok(Vec::new());
|
||||
writer.write(&[0, 1, 2]).unwrap();
|
||||
let mut writer: old_io::IoResult<Vec<u8>> = Ok(Vec::new());
|
||||
writer.write_all(&[0, 1, 2]).unwrap();
|
||||
writer.flush().unwrap();
|
||||
assert_eq!(writer.unwrap(), vec!(0, 1, 2));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_option_writer_error() {
|
||||
let mut writer: io::IoResult<Vec<u8>> =
|
||||
Err(io::standard_error(io::EndOfFile));
|
||||
let mut writer: old_io::IoResult<Vec<u8>> =
|
||||
Err(old_io::standard_error(old_io::EndOfFile));
|
||||
|
||||
match writer.write(&[0, 0, 0]) {
|
||||
match writer.write_all(&[0, 0, 0]) {
|
||||
Ok(..) => panic!(),
|
||||
Err(e) => assert_eq!(e.kind, io::EndOfFile),
|
||||
Err(e) => assert_eq!(e.kind, old_io::EndOfFile),
|
||||
}
|
||||
match writer.flush() {
|
||||
Ok(..) => panic!(),
|
||||
Err(e) => assert_eq!(e.kind, io::EndOfFile),
|
||||
Err(e) => assert_eq!(e.kind, old_io::EndOfFile),
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_option_reader() {
|
||||
let mut reader: io::IoResult<MemReader> =
|
||||
let mut reader: old_io::IoResult<MemReader> =
|
||||
Ok(MemReader::new(vec!(0, 1, 2, 3)));
|
||||
let mut buf = [0, 0];
|
||||
reader.read(&mut buf).unwrap();
|
||||
|
|
@ -117,13 +117,13 @@ mod test {
|
|||
|
||||
#[test]
|
||||
fn test_option_reader_error() {
|
||||
let mut reader: io::IoResult<MemReader> =
|
||||
Err(io::standard_error(io::EndOfFile));
|
||||
let mut reader: old_io::IoResult<MemReader> =
|
||||
Err(old_io::standard_error(old_io::EndOfFile));
|
||||
let mut buf = [];
|
||||
|
||||
match reader.read(&mut buf) {
|
||||
Ok(..) => panic!(),
|
||||
Err(e) => assert_eq!(e.kind, io::EndOfFile),
|
||||
Err(e) => assert_eq!(e.kind, old_io::EndOfFile),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -19,10 +19,10 @@
|
|||
//!
|
||||
//! ```rust
|
||||
//! # #![allow(unused_must_use)]
|
||||
//! use std::io;
|
||||
//! use std::old_io;
|
||||
//!
|
||||
//! let mut out = io::stdout();
|
||||
//! out.write(b"Hello, world!");
|
||||
//! let mut out = old_io::stdout();
|
||||
//! out.write_all(b"Hello, world!");
|
||||
//! ```
|
||||
|
||||
use self::StdSource::*;
|
||||
|
|
@ -32,7 +32,7 @@ use cell::RefCell;
|
|||
use clone::Clone;
|
||||
use failure::LOCAL_STDERR;
|
||||
use fmt;
|
||||
use io::{Reader, Writer, IoResult, IoError, OtherIoError, Buffer,
|
||||
use old_io::{Reader, Writer, IoResult, IoError, OtherIoError, Buffer,
|
||||
standard_error, EndOfFile, LineBufferedWriter, BufferedReader};
|
||||
use marker::{Sync, Send};
|
||||
use libc;
|
||||
|
|
@ -141,9 +141,9 @@ impl StdinReader {
|
|||
/// # Examples
|
||||
///
|
||||
/// ```rust
|
||||
/// use std::io;
|
||||
/// use std::old_io;
|
||||
///
|
||||
/// for line in io::stdin().lock().lines() {
|
||||
/// for line in old_io::stdin().lock().lines() {
|
||||
/// println!("{}", line.unwrap());
|
||||
/// }
|
||||
/// ```
|
||||
|
|
@ -370,14 +370,14 @@ pub fn flush() {
|
|||
/// Prints a string to the stdout of the current process. No newline is emitted
|
||||
/// after the string is printed.
|
||||
pub fn print(s: &str) {
|
||||
with_task_stdout(|io| io.write(s.as_bytes()))
|
||||
with_task_stdout(|io| io.write_all(s.as_bytes()))
|
||||
}
|
||||
|
||||
/// Prints a string to the stdout of the current process. A literal
|
||||
/// `\n` character is printed to the console after the string.
|
||||
pub fn println(s: &str) {
|
||||
with_task_stdout(|io| {
|
||||
io.write(s.as_bytes()).and_then(|()| io.write(&[b'\n']))
|
||||
io.write_all(s.as_bytes()).and_then(|()| io.write_all(&[b'\n']))
|
||||
})
|
||||
}
|
||||
|
||||
|
|
@ -498,7 +498,7 @@ impl StdWriter {
|
|||
}
|
||||
|
||||
impl Writer for StdWriter {
|
||||
fn write(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
fn write_all(&mut self, buf: &[u8]) -> IoResult<()> {
|
||||
// As with stdin on windows, stdout often can't handle writes of large
|
||||
// sizes. For an example, see #14940. For this reason, chunk the output
|
||||
// buffer on windows, but on unix we can just write the whole buffer all
|
||||
|
|
@ -539,7 +539,7 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn capture_stdout() {
|
||||
use io::{ChanReader, ChanWriter};
|
||||
use old_io::{ChanReader, ChanWriter};
|
||||
|
||||
let (tx, rx) = channel();
|
||||
let (mut r, w) = (ChanReader::new(rx), ChanWriter::new(tx));
|
||||
|
|
@ -552,7 +552,7 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn capture_stderr() {
|
||||
use io::{ChanReader, ChanWriter, Reader};
|
||||
use old_io::{ChanReader, ChanWriter, Reader};
|
||||
|
||||
let (tx, rx) = channel();
|
||||
let (mut r, w) = (ChanReader::new(rx), ChanWriter::new(tx));
|
||||
|
|
@ -10,8 +10,8 @@
|
|||
|
||||
//! Temporary files and directories
|
||||
|
||||
use io::{fs, IoError, IoErrorKind, IoResult};
|
||||
use io;
|
||||
use old_io::{fs, IoError, IoErrorKind, IoResult};
|
||||
use old_io;
|
||||
use iter::{IteratorExt, range};
|
||||
use ops::Drop;
|
||||
use option::Option;
|
||||
|
|
@ -29,7 +29,7 @@ use string::String;
|
|||
/// # Examples
|
||||
///
|
||||
/// ```no_run
|
||||
/// use std::io::TempDir;
|
||||
/// use std::old_io::TempDir;
|
||||
///
|
||||
/// {
|
||||
/// // create a temporary directory
|
||||
|
|
@ -113,7 +113,7 @@ impl TempDir {
|
|||
suffix
|
||||
};
|
||||
let path = tmpdir.join(leaf);
|
||||
match fs::mkdir(&path, io::USER_RWX) {
|
||||
match fs::mkdir(&path, old_io::USER_RWX) {
|
||||
Ok(_) => return Ok(TempDir { path: Some(path), disarmed: false }),
|
||||
Err(IoError{kind:IoErrorKind::PathAlreadyExists,..}) => (),
|
||||
Err(e) => return Err(e)
|
||||
|
|
@ -14,7 +14,7 @@ use prelude::v1::*;
|
|||
|
||||
use libc;
|
||||
use os;
|
||||
use std::io::net::ip::*;
|
||||
use std::old_io::net::ip::*;
|
||||
use sync::atomic::{AtomicUsize, ATOMIC_USIZE_INIT, Ordering};
|
||||
|
||||
/// Get a port number, starting at 9600, for use in tests
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
use sync::mpsc::{Receiver, Sender, channel};
|
||||
use time::Duration;
|
||||
use io::IoResult;
|
||||
use old_io::IoResult;
|
||||
use sys::timer::Callback;
|
||||
use sys::timer::Timer as TimerImp;
|
||||
|
||||
|
|
@ -31,7 +31,7 @@ use sys::timer::Timer as TimerImp;
|
|||
///
|
||||
/// ```
|
||||
/// # fn foo() {
|
||||
/// use std::io::Timer;
|
||||
/// use std::old_io::Timer;
|
||||
/// use std::time::Duration;
|
||||
///
|
||||
/// let mut timer = Timer::new().unwrap();
|
||||
|
|
@ -50,11 +50,11 @@ use sys::timer::Timer as TimerImp;
|
|||
/// ```
|
||||
///
|
||||
/// If only sleeping is necessary, then a convenience API is provided through
|
||||
/// the `io::timer` module.
|
||||
/// the `old_io::timer` module.
|
||||
///
|
||||
/// ```
|
||||
/// # fn foo() {
|
||||
/// use std::io::timer;
|
||||
/// use std::old_io::timer;
|
||||
/// use std::time::Duration;
|
||||
///
|
||||
/// // Put this task to sleep for 5 seconds
|
||||
|
|
@ -115,7 +115,7 @@ impl Timer {
|
|||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// use std::io::Timer;
|
||||
/// use std::old_io::Timer;
|
||||
/// use std::time::Duration;
|
||||
///
|
||||
/// let mut timer = Timer::new().unwrap();
|
||||
|
|
@ -128,7 +128,7 @@ impl Timer {
|
|||
/// ```
|
||||
///
|
||||
/// ```rust
|
||||
/// use std::io::Timer;
|
||||
/// use std::old_io::Timer;
|
||||
/// use std::time::Duration;
|
||||
///
|
||||
/// // Incorrect, method chaining-style:
|
||||
|
|
@ -167,7 +167,7 @@ impl Timer {
|
|||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// use std::io::Timer;
|
||||
/// use std::old_io::Timer;
|
||||
/// use std::time::Duration;
|
||||
///
|
||||
/// let mut timer = Timer::new().unwrap();
|
||||
|
|
@ -186,7 +186,7 @@ impl Timer {
|
|||
/// ```
|
||||
///
|
||||
/// ```rust
|
||||
/// use std::io::Timer;
|
||||
/// use std::old_io::Timer;
|
||||
/// use std::time::Duration;
|
||||
///
|
||||
/// // Incorrect, method chaining-style.
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
use prelude::v1::*;
|
||||
use cmp;
|
||||
use io;
|
||||
use old_io;
|
||||
use slice::bytes::MutableByteVector;
|
||||
|
||||
/// Wraps a `Reader`, limiting the number of bytes that can be read from it.
|
||||
|
|
@ -42,9 +42,9 @@ impl<R: Reader> LimitReader<R> {
|
|||
}
|
||||
|
||||
impl<R: Reader> Reader for LimitReader<R> {
|
||||
fn read(&mut self, buf: &mut [u8]) -> io::IoResult<uint> {
|
||||
fn read(&mut self, buf: &mut [u8]) -> old_io::IoResult<uint> {
|
||||
if self.limit == 0 {
|
||||
return Err(io::standard_error(io::EndOfFile));
|
||||
return Err(old_io::standard_error(old_io::EndOfFile));
|
||||
}
|
||||
|
||||
let len = cmp::min(self.limit, buf.len());
|
||||
|
|
@ -58,11 +58,11 @@ impl<R: Reader> Reader for LimitReader<R> {
|
|||
}
|
||||
|
||||
impl<R: Buffer> Buffer for LimitReader<R> {
|
||||
fn fill_buf<'a>(&'a mut self) -> io::IoResult<&'a [u8]> {
|
||||
fn fill_buf<'a>(&'a mut self) -> old_io::IoResult<&'a [u8]> {
|
||||
let amt = try!(self.inner.fill_buf());
|
||||
let buf = &amt[..cmp::min(amt.len(), self.limit)];
|
||||
if buf.len() == 0 {
|
||||
Err(io::standard_error(io::EndOfFile))
|
||||
Err(old_io::standard_error(old_io::EndOfFile))
|
||||
} else {
|
||||
Ok(buf)
|
||||
}
|
||||
|
|
@ -83,7 +83,7 @@ pub struct NullWriter;
|
|||
|
||||
impl Writer for NullWriter {
|
||||
#[inline]
|
||||
fn write(&mut self, _buf: &[u8]) -> io::IoResult<()> { Ok(()) }
|
||||
fn write_all(&mut self, _buf: &[u8]) -> old_io::IoResult<()> { Ok(()) }
|
||||
}
|
||||
|
||||
/// A `Reader` which returns an infinite stream of 0 bytes, like /dev/zero.
|
||||
|
|
@ -92,14 +92,14 @@ pub struct ZeroReader;
|
|||
|
||||
impl Reader for ZeroReader {
|
||||
#[inline]
|
||||
fn read(&mut self, buf: &mut [u8]) -> io::IoResult<uint> {
|
||||
fn read(&mut self, buf: &mut [u8]) -> old_io::IoResult<uint> {
|
||||
buf.set_memory(0);
|
||||
Ok(buf.len())
|
||||
}
|
||||
}
|
||||
|
||||
impl Buffer for ZeroReader {
|
||||
fn fill_buf<'a>(&'a mut self) -> io::IoResult<&'a [u8]> {
|
||||
fn fill_buf<'a>(&'a mut self) -> old_io::IoResult<&'a [u8]> {
|
||||
static DATA: [u8; 64] = [0; 64];
|
||||
Ok(DATA.as_slice())
|
||||
}
|
||||
|
|
@ -113,14 +113,14 @@ pub struct NullReader;
|
|||
|
||||
impl Reader for NullReader {
|
||||
#[inline]
|
||||
fn read(&mut self, _buf: &mut [u8]) -> io::IoResult<uint> {
|
||||
Err(io::standard_error(io::EndOfFile))
|
||||
fn read(&mut self, _buf: &mut [u8]) -> old_io::IoResult<uint> {
|
||||
Err(old_io::standard_error(old_io::EndOfFile))
|
||||
}
|
||||
}
|
||||
|
||||
impl Buffer for NullReader {
|
||||
fn fill_buf<'a>(&'a mut self) -> io::IoResult<&'a [u8]> {
|
||||
Err(io::standard_error(io::EndOfFile))
|
||||
fn fill_buf<'a>(&'a mut self) -> old_io::IoResult<&'a [u8]> {
|
||||
Err(old_io::standard_error(old_io::EndOfFile))
|
||||
}
|
||||
fn consume(&mut self, _amt: uint) {}
|
||||
}
|
||||
|
|
@ -143,15 +143,15 @@ impl<W> MultiWriter<W> where W: Writer {
|
|||
|
||||
impl<W> Writer for MultiWriter<W> where W: Writer {
|
||||
#[inline]
|
||||
fn write(&mut self, buf: &[u8]) -> io::IoResult<()> {
|
||||
fn write_all(&mut self, buf: &[u8]) -> old_io::IoResult<()> {
|
||||
for writer in self.writers.iter_mut() {
|
||||
try!(writer.write(buf));
|
||||
try!(writer.write_all(buf));
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn flush(&mut self) -> io::IoResult<()> {
|
||||
fn flush(&mut self) -> old_io::IoResult<()> {
|
||||
for writer in self.writers.iter_mut() {
|
||||
try!(writer.flush());
|
||||
}
|
||||
|
|
@ -176,13 +176,13 @@ impl<R: Reader, I: Iterator<Item=R>> ChainedReader<I, R> {
|
|||
}
|
||||
|
||||
impl<R: Reader, I: Iterator<Item=R>> Reader for ChainedReader<I, R> {
|
||||
fn read(&mut self, buf: &mut [u8]) -> io::IoResult<uint> {
|
||||
fn read(&mut self, buf: &mut [u8]) -> old_io::IoResult<uint> {
|
||||
loop {
|
||||
let err = match self.cur_reader {
|
||||
Some(ref mut r) => {
|
||||
match r.read(buf) {
|
||||
Ok(len) => return Ok(len),
|
||||
Err(ref e) if e.kind == io::EndOfFile => None,
|
||||
Err(ref e) if e.kind == old_io::EndOfFile => None,
|
||||
Err(e) => Some(e),
|
||||
}
|
||||
}
|
||||
|
|
@ -194,7 +194,7 @@ impl<R: Reader, I: Iterator<Item=R>> Reader for ChainedReader<I, R> {
|
|||
None => {}
|
||||
}
|
||||
}
|
||||
Err(io::standard_error(io::EndOfFile))
|
||||
Err(old_io::standard_error(old_io::EndOfFile))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -221,23 +221,23 @@ impl<R: Reader, W: Writer> TeeReader<R, W> {
|
|||
}
|
||||
|
||||
impl<R: Reader, W: Writer> Reader for TeeReader<R, W> {
|
||||
fn read(&mut self, buf: &mut [u8]) -> io::IoResult<uint> {
|
||||
fn read(&mut self, buf: &mut [u8]) -> old_io::IoResult<uint> {
|
||||
self.reader.read(buf).and_then(|len| {
|
||||
self.writer.write(&mut buf[..len]).map(|()| len)
|
||||
self.writer.write_all(&mut buf[..len]).map(|()| len)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
/// Copies all data from a `Reader` to a `Writer`.
|
||||
pub fn copy<R: Reader, W: Writer>(r: &mut R, w: &mut W) -> io::IoResult<()> {
|
||||
pub fn copy<R: Reader, W: Writer>(r: &mut R, w: &mut W) -> old_io::IoResult<()> {
|
||||
let mut buf = [0; super::DEFAULT_BUF_SIZE];
|
||||
loop {
|
||||
let len = match r.read(&mut buf) {
|
||||
Ok(len) => len,
|
||||
Err(ref e) if e.kind == io::EndOfFile => return Ok(()),
|
||||
Err(ref e) if e.kind == old_io::EndOfFile => return Ok(()),
|
||||
Err(e) => return Err(e),
|
||||
};
|
||||
try!(w.write(&buf[..len]));
|
||||
try!(w.write_all(&buf[..len]));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -257,14 +257,14 @@ impl<T: Iterator<Item=u8>> IterReader<T> {
|
|||
|
||||
impl<T: Iterator<Item=u8>> Reader for IterReader<T> {
|
||||
#[inline]
|
||||
fn read(&mut self, buf: &mut [u8]) -> io::IoResult<uint> {
|
||||
fn read(&mut self, buf: &mut [u8]) -> old_io::IoResult<uint> {
|
||||
let mut len = 0;
|
||||
for (slot, elt) in buf.iter_mut().zip(self.iter.by_ref()) {
|
||||
*slot = elt;
|
||||
len += 1;
|
||||
}
|
||||
if len == 0 && buf.len() != 0 {
|
||||
Err(io::standard_error(io::EndOfFile))
|
||||
Err(old_io::standard_error(old_io::EndOfFile))
|
||||
} else {
|
||||
Ok(len)
|
||||
}
|
||||
|
|
@ -275,8 +275,8 @@ impl<T: Iterator<Item=u8>> Reader for IterReader<T> {
|
|||
mod test {
|
||||
use prelude::v1::*;
|
||||
|
||||
use io::{MemReader, ByRefReader};
|
||||
use io;
|
||||
use old_io::{MemReader, ByRefReader};
|
||||
use old_io;
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
|
|
@ -321,7 +321,7 @@ mod test {
|
|||
fn test_null_writer() {
|
||||
let mut s = NullWriter;
|
||||
let buf = vec![0, 0, 0];
|
||||
s.write(buf.as_slice()).unwrap();
|
||||
s.write_all(buf.as_slice()).unwrap();
|
||||
s.flush().unwrap();
|
||||
}
|
||||
|
||||
|
|
@ -347,12 +347,12 @@ mod test {
|
|||
|
||||
struct TestWriter;
|
||||
impl Writer for TestWriter {
|
||||
fn write(&mut self, _buf: &[u8]) -> io::IoResult<()> {
|
||||
fn write_all(&mut self, _buf: &[u8]) -> old_io::IoResult<()> {
|
||||
unsafe { writes += 1 }
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn flush(&mut self) -> io::IoResult<()> {
|
||||
fn flush(&mut self) -> old_io::IoResult<()> {
|
||||
unsafe { flushes += 1 }
|
||||
Ok(())
|
||||
}
|
||||
|
|
@ -360,7 +360,7 @@ mod test {
|
|||
|
||||
let mut multi = MultiWriter::new(vec!(box TestWriter as Box<Writer>,
|
||||
box TestWriter as Box<Writer>));
|
||||
multi.write(&[1, 2, 3]).unwrap();
|
||||
multi.write_all(&[1, 2, 3]).unwrap();
|
||||
assert_eq!(2, unsafe { writes });
|
||||
assert_eq!(0, unsafe { flushes });
|
||||
multi.flush().unwrap();
|
||||
|
|
@ -400,7 +400,7 @@ mod test {
|
|||
let mut r = LimitReader::new(r.by_ref(), 3);
|
||||
assert_eq!(r.read_line(), Ok("012".to_string()));
|
||||
assert_eq!(r.limit(), 0);
|
||||
assert_eq!(r.read_line().err().unwrap().kind, io::EndOfFile);
|
||||
assert_eq!(r.read_line().err().unwrap().kind, old_io::EndOfFile);
|
||||
}
|
||||
{
|
||||
let mut r = LimitReader::new(r.by_ref(), 9);
|
||||
|
|
@ -432,7 +432,7 @@ mod test {
|
|||
assert_eq!(len, 2);
|
||||
assert!(buf == [6, 7, 5]);
|
||||
|
||||
assert_eq!(r.read(&mut buf).unwrap_err().kind, io::EndOfFile);
|
||||
assert_eq!(r.read(&mut buf).unwrap_err().kind, old_io::EndOfFile);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
@ -10,17 +10,19 @@
|
|||
|
||||
//! Higher-level interfaces to libc::* functions and operating system services.
|
||||
//!
|
||||
//! In general these take and return rust types, use rust idioms (enums, closures, vectors) rather
|
||||
//! than C idioms, and do more extensive safety checks.
|
||||
//! In general these take and return rust types, use rust idioms (enums,
|
||||
//! closures, vectors) rather than C idioms, and do more extensive safety
|
||||
//! checks.
|
||||
//!
|
||||
//! This module is not meant to only contain 1:1 mappings to libc entries; any os-interface code
|
||||
//! that is reasonably useful and broadly applicable can go here. Including utility routines that
|
||||
//! merely build on other os code.
|
||||
//! This module is not meant to only contain 1:1 mappings to libc entries; any
|
||||
//! os-interface code that is reasonably useful and broadly applicable can go
|
||||
//! here. Including utility routines that merely build on other os code.
|
||||
//!
|
||||
//! We assume the general case is that users do not care, and do not want to be made to care, which
|
||||
//! operating system they are on. While they may want to special case various special cases -- and
|
||||
//! so we will not _hide_ the facts of which OS the user is on -- they should be given the
|
||||
//! opportunity to write OS-ignorant code by default.
|
||||
//! We assume the general case is that users do not care, and do not want to be
|
||||
//! made to care, which operating system they are on. While they may want to
|
||||
//! special case various special cases -- and so we will not _hide_ the facts of
|
||||
//! which OS the user is on -- they should be given the opportunity to write
|
||||
//! OS-ignorant code by default.
|
||||
|
||||
#![unstable]
|
||||
|
||||
|
|
@ -35,7 +37,7 @@ use self::MapError::*;
|
|||
use clone::Clone;
|
||||
use error::{FromError, Error};
|
||||
use fmt;
|
||||
use io::{IoResult, IoError};
|
||||
use old_io::{IoResult, IoError};
|
||||
use iter::{Iterator, IteratorExt};
|
||||
use marker::{Copy, Send};
|
||||
use libc::{c_void, c_int, c_char};
|
||||
|
|
@ -374,7 +376,7 @@ pub struct Pipe {
|
|||
/// This function is also unsafe as there is no destructor associated with the
|
||||
/// `Pipe` structure will return. If it is not arranged for the returned file
|
||||
/// descriptors to be closed, the file descriptors will leak. For safe handling
|
||||
/// of this scenario, use `std::io::PipeStream` instead.
|
||||
/// of this scenario, use `std::old_io::PipeStream` instead.
|
||||
pub unsafe fn pipe() -> IoResult<Pipe> {
|
||||
let (reader, writer) = try!(sys::os::pipe());
|
||||
Ok(Pipe {
|
||||
|
|
@ -1635,10 +1637,10 @@ mod tests {
|
|||
fn memory_map_file() {
|
||||
use libc;
|
||||
use os::*;
|
||||
use io::fs::{File, unlink};
|
||||
use io::SeekStyle::SeekSet;
|
||||
use io::FileMode::Open;
|
||||
use io::FileAccess::ReadWrite;
|
||||
use old_io::fs::{File, unlink};
|
||||
use old_io::SeekStyle::SeekSet;
|
||||
use old_io::FileMode::Open;
|
||||
use old_io::FileAccess::ReadWrite;
|
||||
|
||||
#[cfg(not(windows))]
|
||||
fn get_fd(file: &File) -> libc::c_int {
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
//! ## Example
|
||||
//!
|
||||
//! ```rust
|
||||
//! use std::io::fs::PathExtensions;
|
||||
//! use std::old_io::fs::PathExtensions;
|
||||
//!
|
||||
//! let mut path = Path::new("/tmp/path");
|
||||
//! println!("path: {}", path.display());
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ use clone::Clone;
|
|||
use cmp::{Ordering, Eq, Ord, PartialEq, PartialOrd};
|
||||
use fmt;
|
||||
use hash;
|
||||
use io::Writer;
|
||||
use old_io::Writer;
|
||||
use iter::{AdditiveIterator, Extend};
|
||||
use iter::{Iterator, IteratorExt, Map};
|
||||
use marker::Sized;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ use clone::Clone;
|
|||
use cmp::{Ordering, Eq, Ord, PartialEq, PartialOrd};
|
||||
use fmt;
|
||||
use hash;
|
||||
use io::Writer;
|
||||
use old_io::Writer;
|
||||
use iter::{AdditiveIterator, Extend};
|
||||
use iter::{Iterator, IteratorExt, Map, repeat};
|
||||
use mem;
|
||||
|
|
|
|||
|
|
@ -43,6 +43,6 @@
|
|||
// NB: remove when path reform lands
|
||||
#[doc(no_inline)] pub use path::{Path, GenericPath};
|
||||
// NB: remove when I/O reform lands
|
||||
#[doc(no_inline)] pub use io::{Buffer, Writer, Reader, Seek, BufferPrelude};
|
||||
#[doc(no_inline)] pub use old_io::{Buffer, Writer, Reader, Seek, BufferPrelude};
|
||||
// NB: remove when range syntax lands
|
||||
#[doc(no_inline)] pub use iter::range;
|
||||
|
|
|
|||
|
|
@ -223,7 +223,7 @@
|
|||
|
||||
use cell::RefCell;
|
||||
use clone::Clone;
|
||||
use io::IoResult;
|
||||
use old_io::IoResult;
|
||||
use iter::{Iterator, IteratorExt};
|
||||
use mem;
|
||||
use rc::Rc;
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ mod imp {
|
|||
|
||||
use self::OsRngInner::*;
|
||||
|
||||
use io::{IoResult, File};
|
||||
use old_io::{IoResult, File};
|
||||
use path::Path;
|
||||
use rand::Rng;
|
||||
use rand::reader::ReaderRng;
|
||||
|
|
@ -187,7 +187,7 @@ mod imp {
|
|||
mod imp {
|
||||
extern crate libc;
|
||||
|
||||
use io::{IoResult};
|
||||
use old_io::{IoResult};
|
||||
use marker::Sync;
|
||||
use mem;
|
||||
use os;
|
||||
|
|
@ -259,7 +259,7 @@ mod imp {
|
|||
mod imp {
|
||||
extern crate libc;
|
||||
|
||||
use io::{IoResult, IoError};
|
||||
use old_io::{IoResult, IoError};
|
||||
use mem;
|
||||
use ops::Drop;
|
||||
use os;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
//! A wrapper around any Reader to treat it as an RNG.
|
||||
|
||||
use io::Reader;
|
||||
use old_io::Reader;
|
||||
use rand::Rng;
|
||||
use result::Result::{Ok, Err};
|
||||
use slice::SliceExt;
|
||||
|
|
@ -26,7 +26,7 @@ use slice::SliceExt;
|
|||
///
|
||||
/// ```rust
|
||||
/// use std::rand::{reader, Rng};
|
||||
/// use std::io::MemReader;
|
||||
/// use std::old_io::MemReader;
|
||||
///
|
||||
/// let mut rng = reader::ReaderRng::new(MemReader::new(vec!(1,2,3,4,5,6,7,8)));
|
||||
/// println!("{:x}", rng.gen::<uint>());
|
||||
|
|
@ -77,7 +77,7 @@ mod test {
|
|||
use prelude::v1::*;
|
||||
|
||||
use super::ReaderRng;
|
||||
use io::MemReader;
|
||||
use old_io::MemReader;
|
||||
use num::Int;
|
||||
use rand::Rng;
|
||||
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@
|
|||
//!
|
||||
//! ```no_run
|
||||
//! use std::sync::mpsc::channel;
|
||||
//! use std::io::timer::Timer;
|
||||
//! use std::old_io::timer::Timer;
|
||||
//! use std::time::Duration;
|
||||
//!
|
||||
//! let (tx, rx) = channel::<int>();
|
||||
|
|
@ -144,7 +144,7 @@
|
|||
//!
|
||||
//! ```no_run
|
||||
//! use std::sync::mpsc::channel;
|
||||
//! use std::io::timer::Timer;
|
||||
//! use std::old_io::timer::Timer;
|
||||
//! use std::time::Duration;
|
||||
//!
|
||||
//! let (tx, rx) = channel::<int>();
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
use prelude::v1::*;
|
||||
|
||||
use io::IoResult;
|
||||
use old_io::IoResult;
|
||||
|
||||
#[cfg(target_pointer_width = "64")]
|
||||
pub const HEX_WIDTH: uint = 18;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
#![allow(missing_docs)]
|
||||
#![allow(dead_code)]
|
||||
|
||||
use io::{self, IoError, IoResult};
|
||||
use old_io::{self, IoError, IoResult};
|
||||
use prelude::v1::*;
|
||||
use sys::{last_error, retry};
|
||||
use ffi::CString;
|
||||
|
|
@ -35,7 +35,7 @@ pub mod wtf8;
|
|||
|
||||
pub fn eof() -> IoError {
|
||||
IoError {
|
||||
kind: io::EndOfFile,
|
||||
kind: old_io::EndOfFile,
|
||||
desc: "end of file",
|
||||
detail: None,
|
||||
}
|
||||
|
|
@ -43,7 +43,7 @@ pub fn eof() -> IoError {
|
|||
|
||||
pub fn timeout(desc: &'static str) -> IoError {
|
||||
IoError {
|
||||
kind: io::TimedOut,
|
||||
kind: old_io::TimedOut,
|
||||
desc: desc,
|
||||
detail: None,
|
||||
}
|
||||
|
|
@ -51,7 +51,7 @@ pub fn timeout(desc: &'static str) -> IoError {
|
|||
|
||||
pub fn short_write(n: uint, desc: &'static str) -> IoError {
|
||||
IoError {
|
||||
kind: if n == 0 { io::TimedOut } else { io::ShortWrite(n) },
|
||||
kind: if n == 0 { old_io::TimedOut } else { old_io::ShortWrite(n) },
|
||||
desc: desc,
|
||||
detail: None,
|
||||
}
|
||||
|
|
@ -59,7 +59,7 @@ pub fn short_write(n: uint, desc: &'static str) -> IoError {
|
|||
|
||||
pub fn unimpl() -> IoError {
|
||||
IoError {
|
||||
kind: io::IoUnavailable,
|
||||
kind: old_io::IoUnavailable,
|
||||
desc: "operations not yet supported",
|
||||
detail: None,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@ use self::InAddr::*;
|
|||
|
||||
use ffi::CString;
|
||||
use ffi;
|
||||
use io::net::addrinfo;
|
||||
use io::net::ip::{SocketAddr, IpAddr, Ipv4Addr, Ipv6Addr};
|
||||
use io::{IoResult, IoError};
|
||||
use old_io::net::addrinfo;
|
||||
use old_io::net::ip::{SocketAddr, IpAddr, Ipv4Addr, Ipv6Addr};
|
||||
use old_io::{IoResult, IoError};
|
||||
use libc::{self, c_char, c_int};
|
||||
use mem;
|
||||
use num::Int;
|
||||
|
|
@ -28,7 +28,7 @@ use sys::{self, retry, c, sock_t, last_error, last_net_error, last_gai_error, cl
|
|||
use sync::{Arc, Mutex, MutexGuard};
|
||||
use sys_common::{self, keep_going, short_write, timeout};
|
||||
use cmp;
|
||||
use io;
|
||||
use old_io;
|
||||
|
||||
// FIXME: move uses of Arc and deadline tracking to std::io
|
||||
|
||||
|
|
@ -208,7 +208,7 @@ pub fn sockaddr_to_addr(storage: &libc::sockaddr_storage,
|
|||
}
|
||||
_ => {
|
||||
Err(IoError {
|
||||
kind: io::InvalidInput,
|
||||
kind: old_io::InvalidInput,
|
||||
desc: "invalid argument",
|
||||
detail: None,
|
||||
})
|
||||
|
|
@ -458,7 +458,7 @@ pub fn write<T, L, W>(fd: sock_t,
|
|||
// As with read(), first wait for the socket to be ready for
|
||||
// the I/O operation.
|
||||
match await(&[fd], deadline, Writable) {
|
||||
Err(ref e) if e.kind == io::EndOfFile && written > 0 => {
|
||||
Err(ref e) if e.kind == old_io::EndOfFile && written > 0 => {
|
||||
assert!(deadline.is_some());
|
||||
return Err(short_write(written, "short write"))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@
|
|||
use prelude::v1::*;
|
||||
|
||||
use ffi;
|
||||
use io::IoResult;
|
||||
use old_io::IoResult;
|
||||
use libc;
|
||||
use mem;
|
||||
use str;
|
||||
|
|
@ -136,7 +136,7 @@ pub fn write(w: &mut Writer) -> IoResult<()> {
|
|||
#[inline(never)] // if we know this is a function call, we can skip it when
|
||||
// tracing
|
||||
pub fn write(w: &mut Writer) -> IoResult<()> {
|
||||
use io::IoError;
|
||||
use old_io::IoError;
|
||||
|
||||
struct Context<'a> {
|
||||
idx: int,
|
||||
|
|
@ -375,7 +375,7 @@ fn output(w: &mut Writer, idx: int, addr: *mut libc::c_void,
|
|||
Some(string) => try!(demangle(w, string)),
|
||||
None => try!(write!(w, "<unknown>")),
|
||||
}
|
||||
w.write(&['\n' as u8])
|
||||
w.write_all(&['\n' as u8])
|
||||
}
|
||||
|
||||
/// Unwind library interface used for backtraces
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
//! ```rust,ignore
|
||||
//! #![feature(globs)]
|
||||
//!
|
||||
//! use std::io::fs::File;
|
||||
//! use std::old_io::fs::File;
|
||||
//! use std::os::unix::prelude::*;
|
||||
//!
|
||||
//! fn main() {
|
||||
|
|
@ -37,7 +37,7 @@ use sys_common::{AsInner, IntoInner, FromInner};
|
|||
use ffi::{OsStr, OsString};
|
||||
use libc;
|
||||
|
||||
use io;
|
||||
use old_io;
|
||||
|
||||
/// Raw file descriptors.
|
||||
pub type Fd = libc::c_int;
|
||||
|
|
@ -48,55 +48,55 @@ pub trait AsRawFd {
|
|||
fn as_raw_fd(&self) -> Fd;
|
||||
}
|
||||
|
||||
impl AsRawFd for io::fs::File {
|
||||
impl AsRawFd for old_io::fs::File {
|
||||
fn as_raw_fd(&self) -> Fd {
|
||||
self.as_inner().fd()
|
||||
}
|
||||
}
|
||||
|
||||
impl AsRawFd for io::pipe::PipeStream {
|
||||
impl AsRawFd for old_io::pipe::PipeStream {
|
||||
fn as_raw_fd(&self) -> Fd {
|
||||
self.as_inner().fd()
|
||||
}
|
||||
}
|
||||
|
||||
impl AsRawFd for io::net::pipe::UnixStream {
|
||||
impl AsRawFd for old_io::net::pipe::UnixStream {
|
||||
fn as_raw_fd(&self) -> Fd {
|
||||
self.as_inner().fd()
|
||||
}
|
||||
}
|
||||
|
||||
impl AsRawFd for io::net::pipe::UnixListener {
|
||||
impl AsRawFd for old_io::net::pipe::UnixListener {
|
||||
fn as_raw_fd(&self) -> Fd {
|
||||
self.as_inner().fd()
|
||||
}
|
||||
}
|
||||
|
||||
impl AsRawFd for io::net::pipe::UnixAcceptor {
|
||||
impl AsRawFd for old_io::net::pipe::UnixAcceptor {
|
||||
fn as_raw_fd(&self) -> Fd {
|
||||
self.as_inner().fd()
|
||||
}
|
||||
}
|
||||
|
||||
impl AsRawFd for io::net::tcp::TcpStream {
|
||||
impl AsRawFd for old_io::net::tcp::TcpStream {
|
||||
fn as_raw_fd(&self) -> Fd {
|
||||
self.as_inner().fd()
|
||||
}
|
||||
}
|
||||
|
||||
impl AsRawFd for io::net::tcp::TcpListener {
|
||||
impl AsRawFd for old_io::net::tcp::TcpListener {
|
||||
fn as_raw_fd(&self) -> Fd {
|
||||
self.as_inner().fd()
|
||||
}
|
||||
}
|
||||
|
||||
impl AsRawFd for io::net::tcp::TcpAcceptor {
|
||||
impl AsRawFd for old_io::net::tcp::TcpAcceptor {
|
||||
fn as_raw_fd(&self) -> Fd {
|
||||
self.as_inner().fd()
|
||||
}
|
||||
}
|
||||
|
||||
impl AsRawFd for io::net::udp::UdpSocket {
|
||||
impl AsRawFd for old_io::net::udp::UdpSocket {
|
||||
fn as_raw_fd(&self) -> Fd {
|
||||
self.as_inner().fd()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@
|
|||
use prelude::v1::*;
|
||||
|
||||
use ffi::{self, CString};
|
||||
use io::{FilePermission, Write, UnstableFileStat, Open, FileAccess, FileMode};
|
||||
use io::{IoResult, FileStat, SeekStyle};
|
||||
use io::{Read, Truncate, SeekCur, SeekSet, ReadWrite, SeekEnd, Append};
|
||||
use io;
|
||||
use old_io::{FilePermission, Write, UnstableFileStat, Open, FileAccess, FileMode};
|
||||
use old_io::{IoResult, FileStat, SeekStyle};
|
||||
use old_io::{Read, Truncate, SeekCur, SeekSet, ReadWrite, SeekEnd, Append};
|
||||
use old_io;
|
||||
use libc::{self, c_int, c_void};
|
||||
use mem;
|
||||
use ptr;
|
||||
|
|
@ -304,12 +304,12 @@ fn mkstat(stat: &libc::stat) -> FileStat {
|
|||
FileStat {
|
||||
size: stat.st_size as u64,
|
||||
kind: match (stat.st_mode as libc::mode_t) & libc::S_IFMT {
|
||||
libc::S_IFREG => io::FileType::RegularFile,
|
||||
libc::S_IFDIR => io::FileType::Directory,
|
||||
libc::S_IFIFO => io::FileType::NamedPipe,
|
||||
libc::S_IFBLK => io::FileType::BlockSpecial,
|
||||
libc::S_IFLNK => io::FileType::Symlink,
|
||||
_ => io::FileType::Unknown,
|
||||
libc::S_IFREG => old_io::FileType::RegularFile,
|
||||
libc::S_IFDIR => old_io::FileType::Directory,
|
||||
libc::S_IFIFO => old_io::FileType::NamedPipe,
|
||||
libc::S_IFBLK => old_io::FileType::BlockSpecial,
|
||||
libc::S_IFLNK => old_io::FileType::Symlink,
|
||||
_ => old_io::FileType::Unknown,
|
||||
},
|
||||
perm: FilePermission::from_bits_truncate(stat.st_mode as u32),
|
||||
created: mktime(stat.st_ctime as u64, stat.st_ctime_nsec as u64),
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
use prelude::v1::*;
|
||||
|
||||
use ffi;
|
||||
use io::{self, IoResult, IoError};
|
||||
use old_io::{self, IoResult, IoError};
|
||||
use libc;
|
||||
use num::{Int, SignedInt};
|
||||
use num;
|
||||
|
|
@ -94,35 +94,35 @@ pub fn last_gai_error(s: libc::c_int) -> IoError {
|
|||
pub fn decode_error(errno: i32) -> IoError {
|
||||
// FIXME: this should probably be a bit more descriptive...
|
||||
let (kind, desc) = match errno {
|
||||
libc::EOF => (io::EndOfFile, "end of file"),
|
||||
libc::ECONNREFUSED => (io::ConnectionRefused, "connection refused"),
|
||||
libc::ECONNRESET => (io::ConnectionReset, "connection reset"),
|
||||
libc::EOF => (old_io::EndOfFile, "end of file"),
|
||||
libc::ECONNREFUSED => (old_io::ConnectionRefused, "connection refused"),
|
||||
libc::ECONNRESET => (old_io::ConnectionReset, "connection reset"),
|
||||
libc::EPERM | libc::EACCES =>
|
||||
(io::PermissionDenied, "permission denied"),
|
||||
libc::EPIPE => (io::BrokenPipe, "broken pipe"),
|
||||
libc::ENOTCONN => (io::NotConnected, "not connected"),
|
||||
libc::ECONNABORTED => (io::ConnectionAborted, "connection aborted"),
|
||||
libc::EADDRNOTAVAIL => (io::ConnectionRefused, "address not available"),
|
||||
libc::EADDRINUSE => (io::ConnectionRefused, "address in use"),
|
||||
libc::ENOENT => (io::FileNotFound, "no such file or directory"),
|
||||
libc::EISDIR => (io::InvalidInput, "illegal operation on a directory"),
|
||||
libc::ENOSYS => (io::IoUnavailable, "function not implemented"),
|
||||
libc::EINVAL => (io::InvalidInput, "invalid argument"),
|
||||
(old_io::PermissionDenied, "permission denied"),
|
||||
libc::EPIPE => (old_io::BrokenPipe, "broken pipe"),
|
||||
libc::ENOTCONN => (old_io::NotConnected, "not connected"),
|
||||
libc::ECONNABORTED => (old_io::ConnectionAborted, "connection aborted"),
|
||||
libc::EADDRNOTAVAIL => (old_io::ConnectionRefused, "address not available"),
|
||||
libc::EADDRINUSE => (old_io::ConnectionRefused, "address in use"),
|
||||
libc::ENOENT => (old_io::FileNotFound, "no such file or directory"),
|
||||
libc::EISDIR => (old_io::InvalidInput, "illegal operation on a directory"),
|
||||
libc::ENOSYS => (old_io::IoUnavailable, "function not implemented"),
|
||||
libc::EINVAL => (old_io::InvalidInput, "invalid argument"),
|
||||
libc::ENOTTY =>
|
||||
(io::MismatchedFileTypeForOperation,
|
||||
(old_io::MismatchedFileTypeForOperation,
|
||||
"file descriptor is not a TTY"),
|
||||
libc::ETIMEDOUT => (io::TimedOut, "operation timed out"),
|
||||
libc::ECANCELED => (io::TimedOut, "operation aborted"),
|
||||
libc::ETIMEDOUT => (old_io::TimedOut, "operation timed out"),
|
||||
libc::ECANCELED => (old_io::TimedOut, "operation aborted"),
|
||||
libc::consts::os::posix88::EEXIST =>
|
||||
(io::PathAlreadyExists, "path already exists"),
|
||||
(old_io::PathAlreadyExists, "path already exists"),
|
||||
|
||||
// These two constants can have the same value on some systems,
|
||||
// but different values on others, so we can't use a match
|
||||
// clause
|
||||
x if x == libc::EAGAIN || x == libc::EWOULDBLOCK =>
|
||||
(io::ResourceUnavailable, "resource temporarily unavailable"),
|
||||
(old_io::ResourceUnavailable, "resource temporarily unavailable"),
|
||||
|
||||
_ => (io::OtherIoError, "unknown error")
|
||||
_ => (old_io::OtherIoError, "unknown error")
|
||||
};
|
||||
IoError { kind: kind, desc: desc, detail: None }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ use prelude::v1::*;
|
|||
use error::{FromError, Error};
|
||||
use ffi::{self, CString};
|
||||
use fmt;
|
||||
use io::{IoError, IoResult};
|
||||
use old_io::{IoError, IoResult};
|
||||
use libc::{self, c_int, c_char, c_void};
|
||||
use os::TMPBUF_SZ;
|
||||
use os;
|
||||
|
|
@ -198,7 +198,7 @@ pub fn load_self() -> Option<Vec<u8>> {
|
|||
pub fn load_self() -> Option<Vec<u8>> {
|
||||
use std::io;
|
||||
|
||||
match io::fs::readlink(&Path::new("/proc/curproc/file")) {
|
||||
match old_io::fs::readlink(&Path::new("/proc/curproc/file")) {
|
||||
Ok(path) => Some(path.into_vec()),
|
||||
Err(..) => None
|
||||
}
|
||||
|
|
@ -206,9 +206,9 @@ pub fn load_self() -> Option<Vec<u8>> {
|
|||
|
||||
#[cfg(any(target_os = "linux", target_os = "android"))]
|
||||
pub fn load_self() -> Option<Vec<u8>> {
|
||||
use std::io;
|
||||
use old_io;
|
||||
|
||||
match io::fs::readlink(&Path::new("/proc/self/exe")) {
|
||||
match old_io::fs::readlink(&Path::new("/proc/self/exe")) {
|
||||
Ok(path) => Some(path.into_vec()),
|
||||
Err(..) => None
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ use libc;
|
|||
use mem;
|
||||
use sync::{Arc, Mutex};
|
||||
use sync::atomic::{AtomicBool, Ordering};
|
||||
use io::{self, IoResult, IoError};
|
||||
use old_io::{self, IoResult, IoError};
|
||||
|
||||
use sys::{self, timer, retry, c, set_nonblocking, wouldblock};
|
||||
use sys::fs::{fd_t, FileDesc};
|
||||
|
|
@ -41,7 +41,7 @@ fn addr_to_sockaddr_un(addr: &CString,
|
|||
let len = addr.len();
|
||||
if len > s.sun_path.len() - 1 {
|
||||
return Err(IoError {
|
||||
kind: io::InvalidInput,
|
||||
kind: old_io::InvalidInput,
|
||||
desc: "invalid argument: path must be smaller than SUN_LEN",
|
||||
detail: None,
|
||||
})
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ use collections::HashMap;
|
|||
use collections::hash_map::Hasher;
|
||||
use ffi::CString;
|
||||
use hash::Hash;
|
||||
use io::process::{ProcessExit, ExitStatus, ExitSignal};
|
||||
use io::{self, IoResult, IoError, EndOfFile};
|
||||
use old_io::process::{ProcessExit, ExitStatus, ExitSignal};
|
||||
use old_io::{self, IoResult, IoError, EndOfFile};
|
||||
use libc::{self, pid_t, c_void, c_int};
|
||||
use mem;
|
||||
use os;
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@
|
|||
|
||||
use prelude::v1::*;
|
||||
|
||||
use io::net::ip;
|
||||
use io::IoResult;
|
||||
use old_io::net::ip;
|
||||
use old_io::IoResult;
|
||||
use libc;
|
||||
use mem;
|
||||
use ptr;
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
use prelude::v1::*;
|
||||
use self::Req::*;
|
||||
|
||||
use io::IoResult;
|
||||
use old_io::IoResult;
|
||||
use libc;
|
||||
use mem;
|
||||
use os;
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ use prelude::v1::*;
|
|||
|
||||
use sys::fs::FileDesc;
|
||||
use libc::{self, c_int, c_ulong, funcs};
|
||||
use io::{self, IoResult, IoError};
|
||||
use old_io::{self, IoResult, IoError};
|
||||
use sys::c;
|
||||
use sys_common;
|
||||
|
||||
|
|
@ -33,7 +33,7 @@ impl TTY {
|
|||
Ok(TTY { fd: FileDesc::new(fd, true) })
|
||||
} else {
|
||||
Err(IoError {
|
||||
kind: io::MismatchedFileTypeForOperation,
|
||||
kind: old_io::MismatchedFileTypeForOperation,
|
||||
desc: "file descriptor is not a TTY",
|
||||
detail: None,
|
||||
})
|
||||
|
|
@ -67,7 +67,7 @@ impl TTY {
|
|||
let mut size = winsize { ws_row: 0, ws_col: 0, ws_xpixel: 0, ws_ypixel: 0 };
|
||||
if c::ioctl(self.fd.fd(), TIOCGWINSZ, &mut size) == -1 {
|
||||
Err(IoError {
|
||||
kind: io::OtherIoError,
|
||||
kind: old_io::OtherIoError,
|
||||
desc: "Size of terminal could not be determined",
|
||||
detail: None,
|
||||
})
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ use dynamic_lib::DynamicLibrary;
|
|||
use ffi;
|
||||
use core::ops::Index;
|
||||
use intrinsics;
|
||||
use io::{IoResult, Writer};
|
||||
use old_io::{IoResult, Writer};
|
||||
use libc;
|
||||
use mem;
|
||||
use ops::Drop;
|
||||
|
|
@ -363,10 +363,10 @@ pub fn write(w: &mut Writer) -> IoResult<()> {
|
|||
let bytes = unsafe { ffi::c_str_to_bytes(&ptr) };
|
||||
match str::from_utf8(bytes) {
|
||||
Ok(s) => try!(demangle(w, s)),
|
||||
Err(..) => try!(w.write(&bytes[..bytes.len()-1])),
|
||||
Err(..) => try!(w.write_all(&bytes[..bytes.len()-1])),
|
||||
}
|
||||
}
|
||||
try!(w.write(&['\n' as u8]));
|
||||
try!(w.write_all(&['\n' as u8]));
|
||||
}
|
||||
|
||||
Ok(())
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ use sys_common::{AsInner, FromInner};
|
|||
use ffi::{OsStr, OsString};
|
||||
use libc;
|
||||
|
||||
use io;
|
||||
use old_io;
|
||||
|
||||
/// Raw HANDLEs.
|
||||
pub type Handle = libc::HANDLE;
|
||||
|
|
@ -37,31 +37,31 @@ pub trait AsRawHandle {
|
|||
fn as_raw_handle(&self) -> Handle;
|
||||
}
|
||||
|
||||
impl AsRawHandle for io::fs::File {
|
||||
impl AsRawHandle for old_io::fs::File {
|
||||
fn as_raw_handle(&self) -> Handle {
|
||||
self.as_inner().handle()
|
||||
}
|
||||
}
|
||||
|
||||
impl AsRawHandle for io::pipe::PipeStream {
|
||||
impl AsRawHandle for old_io::pipe::PipeStream {
|
||||
fn as_raw_handle(&self) -> Handle {
|
||||
self.as_inner().handle()
|
||||
}
|
||||
}
|
||||
|
||||
impl AsRawHandle for io::net::pipe::UnixStream {
|
||||
impl AsRawHandle for old_io::net::pipe::UnixStream {
|
||||
fn as_raw_handle(&self) -> Handle {
|
||||
self.as_inner().handle()
|
||||
}
|
||||
}
|
||||
|
||||
impl AsRawHandle for io::net::pipe::UnixListener {
|
||||
impl AsRawHandle for old_io::net::pipe::UnixListener {
|
||||
fn as_raw_handle(&self) -> Handle {
|
||||
self.as_inner().handle()
|
||||
}
|
||||
}
|
||||
|
||||
impl AsRawHandle for io::net::pipe::UnixAcceptor {
|
||||
impl AsRawHandle for old_io::net::pipe::UnixAcceptor {
|
||||
fn as_raw_handle(&self) -> Handle {
|
||||
self.as_inner().handle()
|
||||
}
|
||||
|
|
@ -72,25 +72,25 @@ pub trait AsRawSocket {
|
|||
fn as_raw_socket(&self) -> Socket;
|
||||
}
|
||||
|
||||
impl AsRawSocket for io::net::tcp::TcpStream {
|
||||
impl AsRawSocket for old_io::net::tcp::TcpStream {
|
||||
fn as_raw_socket(&self) -> Socket {
|
||||
self.as_inner().fd()
|
||||
}
|
||||
}
|
||||
|
||||
impl AsRawSocket for io::net::tcp::TcpListener {
|
||||
impl AsRawSocket for old_io::net::tcp::TcpListener {
|
||||
fn as_raw_socket(&self) -> Socket {
|
||||
self.as_inner().socket()
|
||||
}
|
||||
}
|
||||
|
||||
impl AsRawSocket for io::net::tcp::TcpAcceptor {
|
||||
impl AsRawSocket for old_io::net::tcp::TcpAcceptor {
|
||||
fn as_raw_socket(&self) -> Socket {
|
||||
self.as_inner().socket()
|
||||
}
|
||||
}
|
||||
|
||||
impl AsRawSocket for io::net::udp::UdpSocket {
|
||||
impl AsRawSocket for old_io::net::udp::UdpSocket {
|
||||
fn as_raw_socket(&self) -> Socket {
|
||||
self.as_inner().fd()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,16 +18,16 @@ use sys::os::fill_utf16_buf_and_decode;
|
|||
use path;
|
||||
use ptr;
|
||||
use str;
|
||||
use io;
|
||||
use old_io;
|
||||
|
||||
use prelude::v1::*;
|
||||
use sys;
|
||||
use sys::os;
|
||||
use sys_common::{keep_going, eof, mkerr_libc};
|
||||
|
||||
use io::{FilePermission, Write, UnstableFileStat, Open, FileAccess, FileMode};
|
||||
use io::{IoResult, IoError, FileStat, SeekStyle};
|
||||
use io::{Read, Truncate, SeekCur, SeekSet, ReadWrite, SeekEnd, Append};
|
||||
use old_io::{FilePermission, Write, UnstableFileStat, Open, FileAccess, FileMode};
|
||||
use old_io::{IoResult, IoError, FileStat, SeekStyle};
|
||||
use old_io::{Read, Truncate, SeekCur, SeekSet, ReadWrite, SeekEnd, Append};
|
||||
|
||||
pub type fd_t = libc::c_int;
|
||||
|
||||
|
|
@ -130,7 +130,7 @@ impl FileDesc {
|
|||
return ret;
|
||||
}
|
||||
|
||||
pub fn fstat(&self) -> IoResult<io::FileStat> {
|
||||
pub fn fstat(&self) -> IoResult<old_io::FileStat> {
|
||||
let mut stat: libc::stat = unsafe { mem::zeroed() };
|
||||
match unsafe { libc::fstat(self.fd(), &mut stat) } {
|
||||
0 => Ok(mkstat(&stat)),
|
||||
|
|
@ -268,7 +268,7 @@ pub fn readdir(p: &Path) -> IoResult<Vec<Path>> {
|
|||
Err(..) => {
|
||||
assert!(libc::FindClose(find_handle) != 0);
|
||||
return Err(IoError {
|
||||
kind: io::InvalidInput,
|
||||
kind: old_io::InvalidInput,
|
||||
desc: "path was not valid UTF-16",
|
||||
detail: Some(format!("path was not valid UTF-16: {:?}", filename)),
|
||||
})
|
||||
|
|
@ -303,14 +303,14 @@ pub fn unlink(p: &Path) -> IoResult<()> {
|
|||
// however, it cannot. To keep the two platforms in line with
|
||||
// respect to their behavior, catch this case on windows, attempt to
|
||||
// change it to read-write, and then remove the file.
|
||||
if e.kind == io::PermissionDenied {
|
||||
if e.kind == old_io::PermissionDenied {
|
||||
let stat = match stat(p) {
|
||||
Ok(stat) => stat,
|
||||
Err(..) => return Err(e),
|
||||
};
|
||||
if stat.perm.intersects(io::USER_WRITE) { return Err(e) }
|
||||
if stat.perm.intersects(old_io::USER_WRITE) { return Err(e) }
|
||||
|
||||
match chmod(p, (stat.perm | io::USER_WRITE).bits() as uint) {
|
||||
match chmod(p, (stat.perm | old_io::USER_WRITE).bits() as uint) {
|
||||
Ok(()) => do_unlink(&p_utf16),
|
||||
Err(..) => {
|
||||
// Try to put it back as we found it
|
||||
|
|
@ -406,12 +406,12 @@ fn mkstat(stat: &libc::stat) -> FileStat {
|
|||
FileStat {
|
||||
size: stat.st_size as u64,
|
||||
kind: match (stat.st_mode as libc::c_int) & libc::S_IFMT {
|
||||
libc::S_IFREG => io::FileType::RegularFile,
|
||||
libc::S_IFDIR => io::FileType::Directory,
|
||||
libc::S_IFIFO => io::FileType::NamedPipe,
|
||||
libc::S_IFBLK => io::FileType::BlockSpecial,
|
||||
libc::S_IFLNK => io::FileType::Symlink,
|
||||
_ => io::FileType::Unknown,
|
||||
libc::S_IFREG => old_io::FileType::RegularFile,
|
||||
libc::S_IFDIR => old_io::FileType::Directory,
|
||||
libc::S_IFIFO => old_io::FileType::NamedPipe,
|
||||
libc::S_IFBLK => old_io::FileType::BlockSpecial,
|
||||
libc::S_IFLNK => old_io::FileType::Symlink,
|
||||
_ => old_io::FileType::Unknown,
|
||||
},
|
||||
perm: FilePermission::from_bits_truncate(stat.st_mode as u32),
|
||||
created: stat.st_ctime as u64,
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ use prelude::v1::*;
|
|||
|
||||
use num;
|
||||
use mem;
|
||||
use io::{self, IoResult, IoError};
|
||||
use old_io::{self, IoResult, IoError};
|
||||
use sync::{Once, ONCE_INIT};
|
||||
|
||||
macro_rules! helper_init { (static $name:ident: Helper<$m:ty>) => (
|
||||
|
|
@ -99,43 +99,43 @@ pub fn last_gai_error(_errno: i32) -> IoError {
|
|||
/// Convert an `errno` value into a high-level error variant and description.
|
||||
pub fn decode_error(errno: i32) -> IoError {
|
||||
let (kind, desc) = match errno {
|
||||
libc::EOF => (io::EndOfFile, "end of file"),
|
||||
libc::ERROR_NO_DATA => (io::BrokenPipe, "the pipe is being closed"),
|
||||
libc::ERROR_FILE_NOT_FOUND => (io::FileNotFound, "file not found"),
|
||||
libc::ERROR_INVALID_NAME => (io::InvalidInput, "invalid file name"),
|
||||
libc::WSAECONNREFUSED => (io::ConnectionRefused, "connection refused"),
|
||||
libc::WSAECONNRESET => (io::ConnectionReset, "connection reset"),
|
||||
libc::EOF => (old_io::EndOfFile, "end of file"),
|
||||
libc::ERROR_NO_DATA => (old_io::BrokenPipe, "the pipe is being closed"),
|
||||
libc::ERROR_FILE_NOT_FOUND => (old_io::FileNotFound, "file not found"),
|
||||
libc::ERROR_INVALID_NAME => (old_io::InvalidInput, "invalid file name"),
|
||||
libc::WSAECONNREFUSED => (old_io::ConnectionRefused, "connection refused"),
|
||||
libc::WSAECONNRESET => (old_io::ConnectionReset, "connection reset"),
|
||||
libc::ERROR_ACCESS_DENIED | libc::WSAEACCES =>
|
||||
(io::PermissionDenied, "permission denied"),
|
||||
(old_io::PermissionDenied, "permission denied"),
|
||||
libc::WSAEWOULDBLOCK => {
|
||||
(io::ResourceUnavailable, "resource temporarily unavailable")
|
||||
(old_io::ResourceUnavailable, "resource temporarily unavailable")
|
||||
}
|
||||
libc::WSAENOTCONN => (io::NotConnected, "not connected"),
|
||||
libc::WSAECONNABORTED => (io::ConnectionAborted, "connection aborted"),
|
||||
libc::WSAEADDRNOTAVAIL => (io::ConnectionRefused, "address not available"),
|
||||
libc::WSAEADDRINUSE => (io::ConnectionRefused, "address in use"),
|
||||
libc::ERROR_BROKEN_PIPE => (io::EndOfFile, "the pipe has ended"),
|
||||
libc::WSAENOTCONN => (old_io::NotConnected, "not connected"),
|
||||
libc::WSAECONNABORTED => (old_io::ConnectionAborted, "connection aborted"),
|
||||
libc::WSAEADDRNOTAVAIL => (old_io::ConnectionRefused, "address not available"),
|
||||
libc::WSAEADDRINUSE => (old_io::ConnectionRefused, "address in use"),
|
||||
libc::ERROR_BROKEN_PIPE => (old_io::EndOfFile, "the pipe has ended"),
|
||||
libc::ERROR_OPERATION_ABORTED =>
|
||||
(io::TimedOut, "operation timed out"),
|
||||
libc::WSAEINVAL => (io::InvalidInput, "invalid argument"),
|
||||
(old_io::TimedOut, "operation timed out"),
|
||||
libc::WSAEINVAL => (old_io::InvalidInput, "invalid argument"),
|
||||
libc::ERROR_CALL_NOT_IMPLEMENTED =>
|
||||
(io::IoUnavailable, "function not implemented"),
|
||||
(old_io::IoUnavailable, "function not implemented"),
|
||||
libc::ERROR_INVALID_HANDLE =>
|
||||
(io::MismatchedFileTypeForOperation,
|
||||
(old_io::MismatchedFileTypeForOperation,
|
||||
"invalid handle provided to function"),
|
||||
libc::ERROR_NOTHING_TO_TERMINATE =>
|
||||
(io::InvalidInput, "no process to kill"),
|
||||
(old_io::InvalidInput, "no process to kill"),
|
||||
libc::ERROR_ALREADY_EXISTS =>
|
||||
(io::PathAlreadyExists, "path already exists"),
|
||||
(old_io::PathAlreadyExists, "path already exists"),
|
||||
|
||||
// libuv maps this error code to EISDIR. we do too. if it is found
|
||||
// to be incorrect, we can add in some more machinery to only
|
||||
// return this message when ERROR_INVALID_FUNCTION after certain
|
||||
// Windows calls.
|
||||
libc::ERROR_INVALID_FUNCTION => (io::InvalidInput,
|
||||
libc::ERROR_INVALID_FUNCTION => (old_io::InvalidInput,
|
||||
"illegal operation on a directory"),
|
||||
|
||||
_ => (io::OtherIoError, "unknown error")
|
||||
_ => (old_io::OtherIoError, "unknown error")
|
||||
};
|
||||
IoError { kind: kind, desc: desc, detail: None }
|
||||
}
|
||||
|
|
@ -185,7 +185,7 @@ pub fn init_net() {
|
|||
|
||||
pub fn unimpl() -> IoError {
|
||||
IoError {
|
||||
kind: io::IoUnavailable,
|
||||
kind: old_io::IoUnavailable,
|
||||
desc: "operation is not implemented",
|
||||
detail: None,
|
||||
}
|
||||
|
|
@ -199,7 +199,7 @@ pub fn to_utf16(s: Option<&str>) -> IoResult<Vec<u16>> {
|
|||
s
|
||||
}),
|
||||
None => Err(IoError {
|
||||
kind: io::InvalidInput,
|
||||
kind: old_io::InvalidInput,
|
||||
desc: "valid unicode input required",
|
||||
detail: None
|
||||
})
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
use prelude::v1::*;
|
||||
|
||||
use fmt;
|
||||
use io::{IoResult, IoError};
|
||||
use old_io::{IoResult, IoError};
|
||||
use iter::repeat;
|
||||
use libc::{c_int, c_void};
|
||||
use libc;
|
||||
|
|
@ -162,7 +162,7 @@ pub fn fill_utf16_buf_and_decode<F>(mut f: F) -> Option<String> where
|
|||
pub fn getcwd() -> IoResult<Path> {
|
||||
use libc::DWORD;
|
||||
use libc::GetCurrentDirectoryW;
|
||||
use io::OtherIoError;
|
||||
use old_io::OtherIoError;
|
||||
|
||||
let mut buf = [0 as u16; BUF_BYTES];
|
||||
unsafe {
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ use prelude::v1::*;
|
|||
|
||||
use libc;
|
||||
use ffi::CString;
|
||||
use io::{self, IoError, IoResult};
|
||||
use old_io::{self, IoError, IoResult};
|
||||
use mem;
|
||||
use ptr;
|
||||
use str;
|
||||
|
|
@ -202,7 +202,7 @@ pub fn await(handle: libc::HANDLE, deadline: u64,
|
|||
|
||||
fn epipe() -> IoError {
|
||||
IoError {
|
||||
kind: io::EndOfFile,
|
||||
kind: old_io::EndOfFile,
|
||||
desc: "the pipe has ended",
|
||||
detail: None,
|
||||
}
|
||||
|
|
@ -485,7 +485,7 @@ impl UnixStream {
|
|||
let amt = offset + bytes_written as uint;
|
||||
return if amt > 0 {
|
||||
Err(IoError {
|
||||
kind: io::ShortWrite(amt),
|
||||
kind: old_io::ShortWrite(amt),
|
||||
desc: "short write during write",
|
||||
detail: None,
|
||||
})
|
||||
|
|
|
|||
|
|
@ -14,10 +14,10 @@ use collections;
|
|||
use ffi::CString;
|
||||
use hash::Hash;
|
||||
use collections::hash_map::Hasher;
|
||||
use io::fs::PathExtensions;
|
||||
use io::process::{ProcessExit, ExitStatus, ExitSignal};
|
||||
use io::{IoResult, IoError};
|
||||
use io;
|
||||
use old_io::fs::PathExtensions;
|
||||
use old_io::process::{ProcessExit, ExitStatus, ExitSignal};
|
||||
use old_io::{IoResult, IoError};
|
||||
use old_io;
|
||||
use libc::{pid_t, c_void, c_int};
|
||||
use libc;
|
||||
use mem;
|
||||
|
|
@ -84,7 +84,7 @@ impl Process {
|
|||
Err(super::last_error())
|
||||
} else if status != libc::STILL_ACTIVE {
|
||||
Err(IoError {
|
||||
kind: io::InvalidInput,
|
||||
kind: old_io::InvalidInput,
|
||||
desc: "no process to kill",
|
||||
detail: None,
|
||||
})
|
||||
|
|
@ -97,7 +97,7 @@ impl Process {
|
|||
super::mkerr_winbool(ret)
|
||||
}
|
||||
_ => Err(IoError {
|
||||
kind: io::IoUnavailable,
|
||||
kind: old_io::IoUnavailable,
|
||||
desc: "unsupported signal on windows",
|
||||
detail: None,
|
||||
})
|
||||
|
|
@ -133,7 +133,7 @@ impl Process {
|
|||
|
||||
if cfg.gid().is_some() || cfg.uid().is_some() {
|
||||
return Err(IoError {
|
||||
kind: io::IoUnavailable,
|
||||
kind: old_io::IoUnavailable,
|
||||
desc: "unsupported gid/uid requested on windows",
|
||||
detail: None,
|
||||
})
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
use io::net::ip;
|
||||
use io::IoResult;
|
||||
use old_io::net::ip;
|
||||
use old_io::IoResult;
|
||||
use libc;
|
||||
use mem;
|
||||
use ptr;
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ use prelude::v1::*;
|
|||
use libc;
|
||||
use ptr;
|
||||
|
||||
use io::IoResult;
|
||||
use old_io::IoResult;
|
||||
use sync::mpsc::{channel, Sender, Receiver, TryRecvError};
|
||||
use sys::c;
|
||||
use sys::fs::FileDesc;
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
use prelude::v1::*;
|
||||
|
||||
use io::{self, IoError, IoResult, MemReader};
|
||||
use old_io::{self, IoError, IoResult, MemReader};
|
||||
use iter::repeat;
|
||||
use libc::types::os::arch::extra::LPCVOID;
|
||||
use libc::{c_int, HANDLE, LPDWORD, DWORD, LPVOID};
|
||||
|
|
@ -44,7 +44,7 @@ use super::c::{GetConsoleScreenBufferInfo};
|
|||
|
||||
fn invalid_encoding() -> IoError {
|
||||
IoError {
|
||||
kind: io::InvalidInput,
|
||||
kind: old_io::InvalidInput,
|
||||
desc: "text was not valid unicode",
|
||||
detail: None,
|
||||
}
|
||||
|
|
@ -83,7 +83,7 @@ impl TTY {
|
|||
})
|
||||
} else {
|
||||
Err(IoError {
|
||||
kind: io::MismatchedFileTypeForOperation,
|
||||
kind: old_io::MismatchedFileTypeForOperation,
|
||||
desc: "invalid handle provided to function",
|
||||
detail: None,
|
||||
})
|
||||
|
|
|
|||
|
|
@ -158,7 +158,7 @@ use sync::{Mutex, Condvar, Arc};
|
|||
use str::Str;
|
||||
use string::String;
|
||||
use rt::{self, unwind};
|
||||
use io::{Writer, stdio};
|
||||
use old_io::{Writer, stdio};
|
||||
use thunk::Thunk;
|
||||
|
||||
use sys::thread as imp;
|
||||
|
|
@ -508,7 +508,7 @@ mod test {
|
|||
use sync::mpsc::{channel, Sender};
|
||||
use boxed::BoxAny;
|
||||
use result;
|
||||
use std::io::{ChanReader, ChanWriter};
|
||||
use std::old_io::{ChanReader, ChanWriter};
|
||||
use super::{Thread, Builder};
|
||||
use thunk::Thunk;
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ use visit::{self, Visitor};
|
|||
use arena::TypedArena;
|
||||
use std::cell::RefCell;
|
||||
use std::fmt;
|
||||
use std::io::IoResult;
|
||||
use std::old_io::IoResult;
|
||||
use std::iter::{self, repeat};
|
||||
use std::mem;
|
||||
use std::slice;
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue