diff options
| author | bors <bors@rust-lang.org> | 2016-03-22 16:05:39 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2016-03-22 16:05:39 -0700 |
| commit | 0dcc413e42f15f4fc51a0ca88a99cc89454ec43d (patch) | |
| tree | 57021614c7aaf786e43691971c742907fc903929 /src/libserialize | |
| parent | e3f2dfdececa8053e652eb0fb286db9aef0f82e6 (diff) | |
| parent | 48d5fe9ec560b53b1f5069219b0d62015e1de5ba (diff) | |
| download | rust-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/libserialize')
| -rw-r--r-- | src/libserialize/json.rs | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/libserialize/json.rs b/src/libserialize/json.rs index b95eddbc661..ab16ef23dd1 100644 --- a/src/libserialize/json.rs +++ b/src/libserialize/json.rs @@ -433,10 +433,9 @@ fn escape_str(wr: &mut fmt::Write, v: &str) -> EncodeResult { } fn escape_char(writer: &mut fmt::Write, v: char) -> EncodeResult { - let mut buf = [0; 4]; - let n = v.encode_utf8(&mut buf).unwrap(); - let buf = unsafe { str::from_utf8_unchecked(&buf[..n]) }; - escape_str(writer, buf) + escape_str(writer, unsafe { + str::from_utf8_unchecked(v.encode_utf8().as_slice()) + }) } fn spaces(wr: &mut fmt::Write, mut n: usize) -> EncodeResult { |
