about summary refs log tree commit diff
path: root/src/libserialize
diff options
context:
space:
mode:
authorAaron Turon <aturon@mozilla.com>2015-03-09 08:49:10 -0700
committerAaron Turon <aturon@mozilla.com>2015-03-12 16:38:58 -0700
commit42c4e481cd98bd392839144c9ac83e55e445a12a (patch)
tree9b630066fe5ee9a68f31f65f4a09be0f8a47faad /src/libserialize
parentf899513a30165946a75ff7f515ab37a226e72172 (diff)
downloadrust-42c4e481cd98bd392839144c9ac83e55e445a12a.tar.gz
rust-42c4e481cd98bd392839144c9ac83e55e445a12a.zip
Stabilize std::path
This commit stabilizes essentially all of the new `std::path` API. The
API itself is changed in a couple of ways (which brings it in closer
alignment with the RFC):

* `.` components are now normalized away, unless they appear at the
  start of a path. This in turn effects the semantics of e.g. asking for
  the file name of `foo/` or `foo/.`, both of which yield `Some("foo")`
  now. This semantics is what the original RFC specified, and is also
  desirable given early experience rolling out the new API.

* The `parent` function now succeeds if, and only if, the path has at
  least one non-root/prefix component. This change affects `pop` as
  well.

* The `Prefix` component now involves a separate `PrefixComponent`
  struct, to better allow for keeping both parsed and unparsed prefix data.

In addition, the `old_path` module is now deprecated.

Closes #23264

[breaking-change]
Diffstat (limited to 'src/libserialize')
-rw-r--r--src/libserialize/lib.rs1
-rw-r--r--src/libserialize/serialize.rs5
2 files changed, 5 insertions, 1 deletions
diff --git a/src/libserialize/lib.rs b/src/libserialize/lib.rs
index ad7908c6dd5..8d58ba99e13 100644
--- a/src/libserialize/lib.rs
+++ b/src/libserialize/lib.rs
@@ -37,7 +37,6 @@ Core encoding and decoding interfaces.
 #![feature(staged_api)]
 #![feature(std_misc)]
 #![feature(unicode)]
-#![feature(path)]
 #![cfg_attr(test, feature(test))]
 
 // test harness access
diff --git a/src/libserialize/serialize.rs b/src/libserialize/serialize.rs
index f287229e083..77e2da7ec79 100644
--- a/src/libserialize/serialize.rs
+++ b/src/libserialize/serialize.rs
@@ -14,6 +14,7 @@
 Core encoding and decoding interfaces.
 */
 
+#[allow(deprecated)]
 use std::old_path;
 use std::path;
 use std::rc::Rc;
@@ -539,12 +540,14 @@ macro_rules! tuple {
 
 tuple! { T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, }
 
+#[allow(deprecated)]
 impl Encodable for old_path::posix::Path {
     fn encode<S: Encoder>(&self, e: &mut S) -> Result<(), S::Error> {
         self.as_vec().encode(e)
     }
 }
 
+#[allow(deprecated)]
 impl Decodable for old_path::posix::Path {
     fn decode<D: Decoder>(d: &mut D) -> Result<old_path::posix::Path, D::Error> {
         let bytes: Vec<u8> = try!(Decodable::decode(d));
@@ -552,12 +555,14 @@ impl Decodable for old_path::posix::Path {
     }
 }
 
+#[allow(deprecated)]
 impl Encodable for old_path::windows::Path {
     fn encode<S: Encoder>(&self, e: &mut S) -> Result<(), S::Error> {
         self.as_vec().encode(e)
     }
 }
 
+#[allow(deprecated)]
 impl Decodable for old_path::windows::Path {
     fn decode<D: Decoder>(d: &mut D) -> Result<old_path::windows::Path, D::Error> {
         let bytes: Vec<u8> = try!(Decodable::decode(d));