diff options
| author | Steven Sheldon <steven@sasheldon.com> | 2014-05-11 03:49:09 -0700 |
|---|---|---|
| committer | Steven Sheldon <steven@sasheldon.com> | 2014-05-11 03:49:09 -0700 |
| commit | a40b971aaf64f9ba189ac07eebf1890d995ae2dc (patch) | |
| tree | b805538743666c5a2babdb0ccd2b8cb4fab481b0 /src/libstd | |
| parent | adb8b0b230d5e5c79b4f873825b3d3cff8d1bc8f (diff) | |
| download | rust-a40b971aaf64f9ba189ac07eebf1890d995ae2dc.tar.gz rust-a40b971aaf64f9ba189ac07eebf1890d995ae2dc.zip | |
Implement Mutable trait for StrBuf.
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/strbuf.rs | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/libstd/strbuf.rs b/src/libstd/strbuf.rs index 8e05b2f527d..2250244a3bb 100644 --- a/src/libstd/strbuf.rs +++ b/src/libstd/strbuf.rs @@ -13,7 +13,7 @@ use c_vec::CVec; use cast; use char::Char; -use container::Container; +use container::{Container, Mutable}; use fmt; use io::Writer; use iter::{Extendable, FromIterator, Iterator, range}; @@ -245,6 +245,13 @@ impl Container for StrBuf { } } +impl Mutable for StrBuf { + #[inline] + fn clear(&mut self) { + self.vec.clear() + } +} + impl FromIterator<char> for StrBuf { fn from_iter<I:Iterator<char>>(iterator: I) -> StrBuf { let mut buf = StrBuf::new(); @@ -298,6 +305,7 @@ impl<H:Writer> ::hash::Hash<H> for StrBuf { #[cfg(test)] mod tests { extern crate test; + use container::{Container, Mutable}; use self::test::Bencher; use str::{Str, StrSlice}; use super::StrBuf; @@ -380,4 +388,12 @@ mod tests { let mut s = StrBuf::from_str("\u00FC"); // ΓΌ s.truncate(1); } + + #[test] + fn test_str_clear() { + let mut s = StrBuf::from_str("12345"); + s.clear(); + assert_eq!(s.len(), 0); + assert_eq!(s.as_slice(), ""); + } } |
