about summary refs log tree commit diff
path: root/src/libcoretest
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/libcoretest
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/libcoretest')
-rw-r--r--src/libcoretest/char.rs14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/libcoretest/char.rs b/src/libcoretest/char.rs
index c1f3ea42ef4..ba8918fc6cb 100644
--- a/src/libcoretest/char.rs
+++ b/src/libcoretest/char.rs
@@ -175,9 +175,10 @@ fn test_escape_unicode() {
 #[test]
 fn test_encode_utf8() {
     fn check(input: char, expect: &[u8]) {
-        let mut buf = [0; 4];
-        let n = input.encode_utf8(&mut buf).unwrap_or(0);
-        assert_eq!(&buf[..n], expect);
+        assert_eq!(input.encode_utf8().as_slice(), expect);
+        for (a, b) in input.encode_utf8().zip(expect) {
+            assert_eq!(a, *b);
+        }
     }
 
     check('x', &[0x78]);
@@ -189,9 +190,10 @@ fn test_encode_utf8() {
 #[test]
 fn test_encode_utf16() {
     fn check(input: char, expect: &[u16]) {
-        let mut buf = [0; 2];
-        let n = input.encode_utf16(&mut buf).unwrap_or(0);
-        assert_eq!(&buf[..n], expect);
+        assert_eq!(input.encode_utf16().as_slice(), expect);
+        for (a, b) in input.encode_utf16().zip(expect) {
+            assert_eq!(a, *b);
+        }
     }
 
     check('x', &[0x0078]);