diff options
| author | Kevin Ballard <kevin@sb.org> | 2014-02-07 15:46:25 -0800 |
|---|---|---|
| committer | Kevin Ballard <kevin@sb.org> | 2014-02-07 22:31:51 -0800 |
| commit | 122c94d2f3909a06a5dd172b423b9b56a2f17039 (patch) | |
| tree | eef34be7c31f29664de6e3212a69052f3030a9ad /src/libstd/path | |
| parent | 28467f5d197d1455e922711a28ea4a19702dbda9 (diff) | |
| download | rust-122c94d2f3909a06a5dd172b423b9b56a2f17039.tar.gz rust-122c94d2f3909a06a5dd172b423b9b56a2f17039.zip | |
Implement BytesContainer for MaybeOwned
Diffstat (limited to 'src/libstd/path')
| -rw-r--r-- | src/libstd/path/mod.rs | 17 |
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) |
