summary refs log tree commit diff
path: root/src/libstd/path
diff options
context:
space:
mode:
authorKevin Ballard <kevin@sb.org>2014-02-07 15:46:25 -0800
committerKevin Ballard <kevin@sb.org>2014-02-07 22:31:51 -0800
commit122c94d2f3909a06a5dd172b423b9b56a2f17039 (patch)
treeeef34be7c31f29664de6e3212a69052f3030a9ad /src/libstd/path
parent28467f5d197d1455e922711a28ea4a19702dbda9 (diff)
downloadrust-122c94d2f3909a06a5dd172b423b9b56a2f17039.tar.gz
rust-122c94d2f3909a06a5dd172b423b9b56a2f17039.zip
Implement BytesContainer for MaybeOwned
Diffstat (limited to 'src/libstd/path')
-rw-r--r--src/libstd/path/mod.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/libstd/path/mod.rs b/src/libstd/path/mod.rs
index d5a69b12f2a..fd75a486e8d 100644
--- a/src/libstd/path/mod.rs
+++ b/src/libstd/path/mod.rs
@@ -591,6 +591,23 @@ impl BytesContainer for CString {
     }
 }
 
+impl<'a> BytesContainer for str::MaybeOwned<'a> {
+    #[inline]
+    fn container_as_bytes<'b>(&'b self) -> &'b [u8] {
+        self.as_slice().as_bytes()
+    }
+    #[inline]
+    fn container_into_owned_bytes(self) -> ~[u8] {
+        self.into_owned().into_bytes()
+    }
+    #[inline]
+    fn container_as_str<'b>(&'b self) -> Option<&'b str> {
+        Some(self.as_slice())
+    }
+    #[inline]
+    fn is_str(_: Option<str::MaybeOwned>) -> bool { true }
+}
+
 #[inline(always)]
 fn contains_nul(v: &[u8]) -> bool {
     v.iter().any(|&x| x == 0)