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:
parent
6cf3b0b74a
commit
9fc51efe33
25 changed files with 132 additions and 70 deletions
|
@ -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("/");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue