Auto merge of #30187 - alexcrichton:stabilize-1.6, r=aturon
This commit is the standard API stabilization commit for the 1.6 release cycle. The list of issues and APIs below have all been through their cycle-long FCP and the libs team decisions are listed below Stabilized APIs * `Read::read_exact` * `ErrorKind::UnexpectedEof` (renamed from `UnexpectedEOF`) * libcore -- this was a bit of a nuanced stabilization, the crate itself is now marked as `#[stable]` and the methods appearing via traits for primitives like `char` and `str` are now also marked as stable. Note that the extension traits themeselves are marked as unstable as they're imported via the prelude. The `try!` macro was also moved from the standard library into libcore to have the same interface. Otherwise the functions all have copied stability from the standard library now. * `fs::DirBuilder` * `fs::DirBuilder::new` * `fs::DirBuilder::recursive` * `fs::DirBuilder::create` * `os::unix::fs::DirBuilderExt` * `os::unix::fs::DirBuilderExt::mode` * `vec::Drain` * `vec::Vec::drain` * `string::Drain` * `string::String::drain` * `vec_deque::Drain` * `vec_deque::VecDeque::drain` * `collections::hash_map::Drain` * `collections::hash_map::HashMap::drain` * `collections::hash_set::Drain` * `collections::hash_set::HashSet::drain` * `collections::binary_heap::Drain` * `collections::binary_heap::BinaryHeap::drain` * `Vec::extend_from_slice` (renamed from `push_all`) * `Mutex::get_mut` * `Mutex::into_inner` * `RwLock::get_mut` * `RwLock::into_inner` * `Iterator::min_by_key` (renamed from `min_by`) * `Iterator::max_by_key` (renamed from `max_by`) Deprecated APIs * `ErrorKind::UnexpectedEOF` (renamed to `UnexpectedEof`) * `OsString::from_bytes` * `OsStr::to_cstring` * `OsStr::to_bytes` * `fs::walk_dir` and `fs::WalkDir` * `path::Components::peek` * `slice::bytes::MutableByteVector` * `slice::bytes::copy_memory` * `Vec::push_all` (renamed to `extend_from_slice`) * `Duration::span` * `IpAddr` * `SocketAddr::ip` * `Read::tee` * `io::Tee` * `Write::broadcast` * `io::Broadcast` * `Iterator::min_by` (renamed to `min_by_key`) * `Iterator::max_by` (renamed to `max_by_key`) * `net::lookup_addr` New APIs (still unstable) * `<[T]>::sort_by_key` (added to mirror `min_by_key`) Closes #27585 Closes #27704 Closes #27707 Closes #27710 Closes #27711 Closes #27727 Closes #27740 Closes #27744 Closes #27799 Closes #27801 cc #27801 (doesn't close as `Chars` is still unstable) Closes #28968
This commit is contained in:
commit
c4b16384f1
165 changed files with 712 additions and 718 deletions
|
|
@ -246,17 +246,16 @@ pub fn symlink<P: AsRef<Path>, Q: AsRef<Path>>(src: P, dst: Q) -> io::Result<()>
|
|||
sys::fs::symlink(src.as_ref(), dst.as_ref())
|
||||
}
|
||||
|
||||
#[unstable(feature = "dir_builder", reason = "recently added API",
|
||||
issue = "27710")]
|
||||
#[stable(feature = "dir_builder", since = "1.6.0")]
|
||||
/// An extension trait for `fs::DirBuilder` for unix-specific options.
|
||||
pub trait DirBuilderExt {
|
||||
/// Sets the mode to create new directories with. This option defaults to
|
||||
/// 0o777.
|
||||
#[stable(feature = "dir_builder", since = "1.6.0")]
|
||||
fn mode(&mut self, mode: raw::mode_t) -> &mut Self;
|
||||
}
|
||||
|
||||
#[unstable(feature = "dir_builder", reason = "recently added API",
|
||||
issue = "27710")]
|
||||
#[stable(feature = "dir_builder", since = "1.6.0")]
|
||||
impl DirBuilderExt for fs::DirBuilder {
|
||||
fn mode(&mut self, mode: raw::mode_t) -> &mut fs::DirBuilder {
|
||||
self.as_inner_mut().set_mode(mode);
|
||||
|
|
|
|||
|
|
@ -355,8 +355,7 @@ impl DirBuilder {
|
|||
}
|
||||
|
||||
fn cstr(path: &Path) -> io::Result<CString> {
|
||||
path.as_os_str().to_cstring().ok_or(
|
||||
io::Error::new(io::ErrorKind::InvalidInput, "path contained a null"))
|
||||
Ok(try!(CString::new(path.as_os_str().as_bytes())))
|
||||
}
|
||||
|
||||
impl FromInner<c_int> for File {
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ pub fn join_paths<I, T>(paths: I) -> Result<OsString, JoinPathsError>
|
|||
if path.contains(&sep) {
|
||||
return Err(JoinPathsError)
|
||||
}
|
||||
joined.push_all(path);
|
||||
joined.extend_from_slice(path);
|
||||
}
|
||||
Ok(OsStringExt::from_vec(joined))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ impl Buf {
|
|||
}
|
||||
|
||||
pub fn push_slice(&mut self, s: &Slice) {
|
||||
self.inner.push_all(&s.inner)
|
||||
self.inner.extend_from_slice(&s.inner)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ pub struct Command {
|
|||
impl Command {
|
||||
pub fn new(program: &OsStr) -> Command {
|
||||
Command {
|
||||
program: program.to_cstring().unwrap(),
|
||||
program: os2c(program),
|
||||
args: Vec::new(),
|
||||
env: None,
|
||||
cwd: None,
|
||||
|
|
@ -54,10 +54,10 @@ impl Command {
|
|||
}
|
||||
|
||||
pub fn arg(&mut self, arg: &OsStr) {
|
||||
self.args.push(arg.to_cstring().unwrap())
|
||||
self.args.push(os2c(arg));
|
||||
}
|
||||
pub fn args<'a, I: Iterator<Item = &'a OsStr>>(&mut self, args: I) {
|
||||
self.args.extend(args.map(|s| s.to_cstring().unwrap()))
|
||||
self.args.extend(args.map(os2c));
|
||||
}
|
||||
fn init_env_map(&mut self) {
|
||||
if self.env.is_none() {
|
||||
|
|
@ -76,10 +76,14 @@ impl Command {
|
|||
self.env = Some(HashMap::new())
|
||||
}
|
||||
pub fn cwd(&mut self, dir: &OsStr) {
|
||||
self.cwd = Some(dir.to_cstring().unwrap())
|
||||
self.cwd = Some(os2c(dir));
|
||||
}
|
||||
}
|
||||
|
||||
fn os2c(s: &OsStr) -> CString {
|
||||
CString::new(s.as_bytes()).unwrap()
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Processes
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
@ -430,9 +434,9 @@ fn make_envp(env: Option<&HashMap<OsString, OsString>>)
|
|||
|
||||
for pair in env {
|
||||
let mut kv = Vec::new();
|
||||
kv.push_all(pair.0.as_bytes());
|
||||
kv.extend_from_slice(pair.0.as_bytes());
|
||||
kv.push('=' as u8);
|
||||
kv.push_all(pair.1.as_bytes());
|
||||
kv.extend_from_slice(pair.1.as_bytes());
|
||||
kv.push(0); // terminating null
|
||||
tmps.push(kv);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue