summary refs log tree commit diff
path: root/src/libstd/path.rs
diff options
context:
space:
mode:
authorAaron Turon <aturon@mozilla.com>2015-03-30 15:15:27 -0700
committerAaron Turon <aturon@mozilla.com>2015-03-31 11:24:38 -0700
commit9fc51efe3344a32d9e522f08383f052277b6ab63 (patch)
tree29eb89ae9f4b70cc88642eb6b66cbb9398c41ae4 /src/libstd/path.rs
parent6cf3b0b74aadcc1fe87adbd2c74876a1f6c920b3 (diff)
downloadrust-9fc51efe3344a32d9e522f08383f052277b6ab63.tar.gz
rust-9fc51efe3344a32d9e522f08383f052277b6ab63.zip
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]
Diffstat (limited to 'src/libstd/path.rs')
-rw-r--r--src/libstd/path.rs15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/libstd/path.rs b/src/libstd/path.rs
index 58d3ae9f7cf..36a5d1465f0 100644
--- a/src/libstd/path.rs
+++ b/src/libstd/path.rs
@@ -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("/");