about summary refs log tree commit diff
path: root/src/libcollectionstest/str.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2016-03-22 16:05:39 -0700
committerbors <bors@rust-lang.org>2016-03-22 16:05:39 -0700
commit0dcc413e42f15f4fc51a0ca88a99cc89454ec43d (patch)
tree57021614c7aaf786e43691971c742907fc903929 /src/libcollectionstest/str.rs
parente3f2dfdececa8053e652eb0fb286db9aef0f82e6 (diff)
parent48d5fe9ec560b53b1f5069219b0d62015e1de5ba (diff)
downloadrust-0dcc413e42f15f4fc51a0ca88a99cc89454ec43d.tar.gz
rust-0dcc413e42f15f4fc51a0ca88a99cc89454ec43d.zip
Auto merge of #32204 - alexcrichton:redesign-char-encoding-types, r=aturon
std: Change `encode_utf{8,16}` to return iterators

Currently these have non-traditional APIs which take a buffer and report how
much was filled in, but they're not necessarily ergonomic to use. Returning an
iterator which *also* exposes an underlying slice shouldn't result in any
performance loss as it's just a lazy version of the same implementation, and
it's also much more ergonomic!

cc #27784
Diffstat (limited to 'src/libcollectionstest/str.rs')
-rw-r--r--src/libcollectionstest/str.rs10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/libcollectionstest/str.rs b/src/libcollectionstest/str.rs
index 776d73ef10f..1150035eb42 100644
--- a/src/libcollectionstest/str.rs
+++ b/src/libcollectionstest/str.rs
@@ -794,10 +794,9 @@ fn test_rev_iterator() {
 
 #[test]
 fn test_chars_decoding() {
-    let mut bytes = [0; 4];
     for c in (0..0x110000).filter_map(::std::char::from_u32) {
-        let len = c.encode_utf8(&mut bytes).unwrap_or(0);
-        let s = ::std::str::from_utf8(&bytes[..len]).unwrap();
+        let bytes = c.encode_utf8();
+        let s = ::std::str::from_utf8(bytes.as_slice()).unwrap();
         if Some(c) != s.chars().next() {
             panic!("character {:x}={} does not decode correctly", c as u32, c);
         }
@@ -806,10 +805,9 @@ fn test_chars_decoding() {
 
 #[test]
 fn test_chars_rev_decoding() {
-    let mut bytes = [0; 4];
     for c in (0..0x110000).filter_map(::std::char::from_u32) {
-        let len = c.encode_utf8(&mut bytes).unwrap_or(0);
-        let s = ::std::str::from_utf8(&bytes[..len]).unwrap();
+        let bytes = c.encode_utf8();
+        let s = ::std::str::from_utf8(bytes.as_slice()).unwrap();
         if Some(c) != s.chars().rev().next() {
             panic!("character {:x}={} does not decode correctly", c as u32, c);
         }