diff options
| author | Simon Sapin <simon.sapin@exyr.org> | 2013-12-23 17:30:49 +0100 |
|---|---|---|
| committer | Simon Sapin <simon.sapin@exyr.org> | 2014-01-21 15:48:48 -0800 |
| commit | b8c41492939c77b7139e46ee67375b47041f6692 (patch) | |
| tree | cff3b09dceb4ee8ee9384a88f66b9a55505e9deb /src/libstd | |
| parent | 46b01647ba14f1d66d5af2cd70bea400d3ca4df3 (diff) | |
| download | rust-b8c41492939c77b7139e46ee67375b47041f6692.tar.gz rust-b8c41492939c77b7139e46ee67375b47041f6692.zip | |
[std::str] Rename from_utf8_opt() to from_utf8(), drop the old from_utf8() behavior
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/c_str.rs | 2 | ||||
| -rw-r--r-- | src/libstd/fmt/mod.rs | 2 | ||||
| -rw-r--r-- | src/libstd/io/fs.rs | 14 | ||||
| -rw-r--r-- | src/libstd/io/mod.rs | 2 | ||||
| -rw-r--r-- | src/libstd/io/process.rs | 2 | ||||
| -rw-r--r-- | src/libstd/path/mod.rs | 12 | ||||
| -rw-r--r-- | src/libstd/path/posix.rs | 6 | ||||
| -rw-r--r-- | src/libstd/str.rs | 35 |
8 files changed, 25 insertions, 50 deletions
diff --git a/src/libstd/c_str.rs b/src/libstd/c_str.rs index 301df329f49..c735e325068 100644 --- a/src/libstd/c_str.rs +++ b/src/libstd/c_str.rs @@ -167,7 +167,7 @@ impl CString { if self.buf.is_null() { return None; } let buf = self.as_bytes(); let buf = buf.slice_to(buf.len()-1); // chop off the trailing NUL - str::from_utf8_opt(buf) + str::from_utf8(buf) } /// Return a CString iterator. diff --git a/src/libstd/fmt/mod.rs b/src/libstd/fmt/mod.rs index 8a945d09bfc..4bee1f42b86 100644 --- a/src/libstd/fmt/mod.rs +++ b/src/libstd/fmt/mod.rs @@ -812,7 +812,7 @@ impl<'a> Formatter<'a> { fn runplural(&mut self, value: uint, pieces: &[rt::Piece]) { ::uint::to_str_bytes(value, 10, |buf| { - let valuestr = str::from_utf8(buf); + let valuestr = str::from_utf8(buf).unwrap(); for piece in pieces.iter() { self.run(piece, Some(valuestr)); } diff --git a/src/libstd/io/fs.rs b/src/libstd/io/fs.rs index 80dbaebe01c..0564311ad22 100644 --- a/src/libstd/io/fs.rs +++ b/src/libstd/io/fs.rs @@ -805,7 +805,7 @@ mod test { } } unlink(filename); - let read_str = str::from_utf8(read_mem); + let read_str = str::from_utf8(read_mem).unwrap(); assert_eq!(read_str, message); }) @@ -829,7 +829,7 @@ mod test { tell_pos_post_read = read_stream.tell(); } unlink(filename); - let read_str = str::from_utf8(read_mem); + let read_str = str::from_utf8(read_mem).unwrap(); assert_eq!(read_str, message.slice(4, 8)); assert_eq!(tell_pos_pre_read, set_cursor); assert_eq!(tell_pos_post_read, message.len() as u64); @@ -854,7 +854,7 @@ mod test { read_stream.read(read_mem); } unlink(filename); - let read_str = str::from_utf8(read_mem); + let read_str = str::from_utf8(read_mem).unwrap(); assert!(read_str == final_msg.to_owned()); }) @@ -876,15 +876,15 @@ mod test { read_stream.seek(-4, SeekEnd); read_stream.read(read_mem); - assert_eq!(str::from_utf8(read_mem), chunk_three); + assert_eq!(str::from_utf8(read_mem).unwrap(), chunk_three); read_stream.seek(-9, SeekCur); read_stream.read(read_mem); - assert_eq!(str::from_utf8(read_mem), chunk_two); + assert_eq!(str::from_utf8(read_mem).unwrap(), chunk_two); read_stream.seek(0, SeekSet); read_stream.read(read_mem); - assert_eq!(str::from_utf8(read_mem), chunk_one); + assert_eq!(str::from_utf8(read_mem).unwrap(), chunk_one); } unlink(filename); }) @@ -958,7 +958,7 @@ mod test { { let n = f.filestem_str(); File::open(f).read(mem); - let read_str = str::from_utf8(mem); + let read_str = str::from_utf8(mem).unwrap(); let expected = match n { None|Some("") => fail!("really shouldn't happen.."), Some(n) => prefix+n diff --git a/src/libstd/io/mod.rs b/src/libstd/io/mod.rs index 87180980541..b12adbf230f 100644 --- a/src/libstd/io/mod.rs +++ b/src/libstd/io/mod.rs @@ -1202,7 +1202,7 @@ pub trait Buffer: Reader { } } } - match str::from_utf8_opt(buf.slice_to(width)) { + match str::from_utf8(buf.slice_to(width)) { Some(s) => Some(s.char_at(0)), None => None } diff --git a/src/libstd/io/process.rs b/src/libstd/io/process.rs index a0c451647d3..c3fb3e97edf 100644 --- a/src/libstd/io/process.rs +++ b/src/libstd/io/process.rs @@ -254,7 +254,7 @@ mod tests { loop { match input.read(buf) { None => { break } - Some(n) => { ret.push_str(str::from_utf8(buf.slice_to(n))); } + Some(n) => { ret.push_str(str::from_utf8(buf.slice_to(n)).unwrap()); } } } return ret; diff --git a/src/libstd/path/mod.rs b/src/libstd/path/mod.rs index b2de3cd9178..6464d6021ee 100644 --- a/src/libstd/path/mod.rs +++ b/src/libstd/path/mod.rs @@ -189,7 +189,7 @@ pub trait GenericPath: Clone + GenericPathUnsafe { /// If the path is not representable in utf-8, this returns None. #[inline] fn as_str<'a>(&'a self) -> Option<&'a str> { - str::from_utf8_opt(self.as_vec()) + str::from_utf8(self.as_vec()) } /// Returns the path as a byte vector @@ -220,7 +220,7 @@ pub trait GenericPath: Clone + GenericPathUnsafe { /// See `dirname` for details. #[inline] fn dirname_str<'a>(&'a self) -> Option<&'a str> { - str::from_utf8_opt(self.dirname()) + str::from_utf8(self.dirname()) } /// Returns the file component of `self`, as a byte vector. /// If `self` represents the root of the file hierarchy, returns None. @@ -230,7 +230,7 @@ pub trait GenericPath: Clone + GenericPathUnsafe { /// See `filename` for details. #[inline] fn filename_str<'a>(&'a self) -> Option<&'a str> { - self.filename().and_then(str::from_utf8_opt) + self.filename().and_then(str::from_utf8) } /// Returns the stem of the filename of `self`, as a byte vector. /// The stem is the portion of the filename just before the last '.'. @@ -252,7 +252,7 @@ pub trait GenericPath: Clone + GenericPathUnsafe { /// See `filestem` for details. #[inline] fn filestem_str<'a>(&'a self) -> Option<&'a str> { - self.filestem().and_then(str::from_utf8_opt) + self.filestem().and_then(str::from_utf8) } /// Returns the extension of the filename of `self`, as an optional byte vector. /// The extension is the portion of the filename just after the last '.'. @@ -275,7 +275,7 @@ pub trait GenericPath: Clone + GenericPathUnsafe { /// See `extension` for details. #[inline] fn extension_str<'a>(&'a self) -> Option<&'a str> { - self.extension().and_then(str::from_utf8_opt) + self.extension().and_then(str::from_utf8) } /// Replaces the filename portion of the path with the given byte vector or string. @@ -502,7 +502,7 @@ pub trait BytesContainer { /// Returns the receiver interpreted as a utf-8 string, if possible #[inline] fn container_as_str<'a>(&'a self) -> Option<&'a str> { - str::from_utf8_opt(self.container_as_bytes()) + str::from_utf8(self.container_as_bytes()) } /// Returns whether .container_as_str() is guaranteed to not fail // FIXME (#8888): Remove unused arg once ::<for T> works diff --git a/src/libstd/path/posix.rs b/src/libstd/path/posix.rs index dc547d702ba..e95bd2d8ca2 100644 --- a/src/libstd/path/posix.rs +++ b/src/libstd/path/posix.rs @@ -402,13 +402,13 @@ impl Path { /// Returns an iterator that yields each component of the path as Option<&str>. /// See components() for details. pub fn str_components<'a>(&'a self) -> StrComponents<'a> { - self.components().map(str::from_utf8_opt) + self.components().map(str::from_utf8) } /// Returns an iterator that yields each component of the path in reverse as Option<&str>. /// See components() for details. pub fn rev_str_components<'a>(&'a self) -> RevStrComponents<'a> { - self.rev_components().map(str::from_utf8_opt) + self.rev_components().map(str::from_utf8) } } @@ -691,7 +691,7 @@ mod tests { (s: $path:expr, $op:ident, $exp:expr, opt) => ( { let path = Path::new($path); - let left = path.$op().map(|x| str::from_utf8(x)); + let left = path.$op().map(|x| str::from_utf8(x).unwrap()); assert_eq!(left, $exp); } ); diff --git a/src/libstd/str.rs b/src/libstd/str.rs index f59cd855c32..c266ddfea4b 100644 --- a/src/libstd/str.rs +++ b/src/libstd/str.rs @@ -161,17 +161,8 @@ pub fn from_utf8_owned_opt(vv: ~[u8]) -> Option<~str> { /// Once the slice has been validated as utf-8, it is transmuted in-place and /// returned as a '&str' instead of a '&[u8]' /// -/// # Failure -/// -/// Fails if invalid UTF-8 -pub fn from_utf8<'a>(v: &'a [u8]) -> &'a str { - from_utf8_opt(v).expect("from_utf8: not utf-8") -} - -/// Converts a vector to a string slice without performing any allocations. -/// /// Returns None if the slice is not utf-8. -pub fn from_utf8_opt<'a>(v: &'a [u8]) -> Option<&'a str> { +pub fn from_utf8<'a>(v: &'a [u8]) -> Option<&'a str> { if is_utf8(v) { Some(unsafe { raw::from_utf8(v) }) } else { None } @@ -3436,7 +3427,7 @@ mod tests { let s1: ~str = ~"All mimsy were the borogoves"; let v: ~[u8] = s1.as_bytes().to_owned(); - let s2: ~str = from_utf8(v).to_owned(); + let s2: ~str = from_utf8(v).unwrap().to_owned(); let mut i: uint = 0u; let n1: uint = s1.len(); let n2: uint = v.len(); @@ -3961,29 +3952,13 @@ mod tests { #[test] fn test_str_from_utf8() { let xs = bytes!("hello"); - assert_eq!(from_utf8(xs), "hello"); - - let xs = bytes!("ศไทย中华Việt Nam"); - assert_eq!(from_utf8(xs), "ศไทย中华Việt Nam"); - } - - #[test] - #[should_fail] - fn test_str_from_utf8_invalid() { - let xs = bytes!("hello", 0xff); - let _ = from_utf8(xs); - } - - #[test] - fn test_str_from_utf8_opt() { - let xs = bytes!("hello"); - assert_eq!(from_utf8_opt(xs), Some("hello")); + assert_eq!(from_utf8(xs), Some("hello")); let xs = bytes!("ศไทย中华Việt Nam"); - assert_eq!(from_utf8_opt(xs), Some("ศไทย中华Việt Nam")); + assert_eq!(from_utf8(xs), Some("ศไทย中华Việt Nam")); let xs = bytes!("hello", 0xff); - assert_eq!(from_utf8_opt(xs), None); + assert_eq!(from_utf8(xs), None); } #[test] |
