From 122c94d2f3909a06a5dd172b423b9b56a2f17039 Mon Sep 17 00:00:00 2001 From: Kevin Ballard Date: Fri, 7 Feb 2014 15:46:25 -0800 Subject: Implement BytesContainer for MaybeOwned --- src/libstd/path/mod.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/libstd') 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) -> bool { true } +} + #[inline(always)] fn contains_nul(v: &[u8]) -> bool { v.iter().any(|&x| x == 0) -- cgit 1.4.1-3-g733a5