1
Fork 0

Stabilize std::convert and related code

* Marks `#[stable]` the contents of the `std::convert` module.

* Added methods `PathBuf::as_path`, `OsString::as_os_str`,
  `String::as_str`, `Vec::{as_slice, as_mut_slice}`.

* Deprecates `OsStr::from_str` in favor of a new, stable, and more
  general `OsStr::new`.

* Adds unstable methods `OsString::from_bytes` and `OsStr::{to_bytes,
  to_cstring}` for ergonomic FFI usage.

[breaking-change]
This commit is contained in:
Aaron Turon 2015-03-30 15:15:27 -07:00
parent 6cf3b0b74a
commit 9fc51efe33
25 changed files with 132 additions and 70 deletions

View file

@ -35,7 +35,6 @@
//! To build or modify paths, use `PathBuf`:
//!
//! ```rust
//! # #![feature(convert)]
//! use std::path::PathBuf;
//!
//! let mut path = PathBuf::from("c:\\");
@ -521,9 +520,9 @@ impl<'a> Component<'a> {
pub fn as_os_str(self) -> &'a OsStr {
match self {
Component::Prefix(p) => p.as_os_str(),
Component::RootDir => OsStr::from_str(MAIN_SEP_STR),
Component::CurDir => OsStr::from_str("."),
Component::ParentDir => OsStr::from_str(".."),
Component::RootDir => OsStr::new(MAIN_SEP_STR),
Component::CurDir => OsStr::new("."),
Component::ParentDir => OsStr::new(".."),
Component::Normal(path) => path,
}
}
@ -893,7 +892,6 @@ impl<'a> cmp::Ord for Components<'a> {
/// # Examples
///
/// ```
/// # #![feature(convert)]
/// use std::path::PathBuf;
///
/// let mut path = PathBuf::from("c:\\");
@ -918,6 +916,12 @@ impl PathBuf {
PathBuf { inner: OsString::new() }
}
/// Coerce to a `Path` slice.
#[stable(feature = "rust1", since = "1.0.0")]
pub fn as_path(&self) -> &Path {
self
}
/// Extend `self` with `path`.
///
/// If `path` is absolute, it replaces the current path.
@ -985,7 +989,6 @@ impl PathBuf {
/// # Examples
///
/// ```
/// # #![feature(convert)]
/// use std::path::PathBuf;
///
/// let mut buf = PathBuf::from("/");