diff options
| author | the8472 <the8472@users.noreply.github.com> | 2021-09-21 22:53:59 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-09-21 22:53:59 +0200 |
| commit | 051168b87641f8f10fa174a9f74a295eac2a4e7f (patch) | |
| tree | 2d7e222a28f390ccd1373b2c35d7122783cc0331 | |
| parent | c2cdba42b975d0fff4b48cb219e57c0a232c9bab (diff) | |
| parent | cccd6e0e830fcaaa5891102f48b10786c24a2fe5 (diff) | |
| download | rust-051168b87641f8f10fa174a9f74a295eac2a4e7f.tar.gz rust-051168b87641f8f10fa174a9f74a295eac2a4e7f.zip | |
Rollup merge of #89015 - klensy:escape-def, r=Mark-Simulacrum
core::ascii::escape_default: reduce struct size
| -rw-r--r-- | library/core/src/ascii.rs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/library/core/src/ascii.rs b/library/core/src/ascii.rs index 4780d8dc788..0a456ee1eb2 100644 --- a/library/core/src/ascii.rs +++ b/library/core/src/ascii.rs @@ -21,7 +21,7 @@ use crate::str::from_utf8_unchecked; #[stable(feature = "rust1", since = "1.0.0")] #[derive(Clone)] pub struct EscapeDefault { - range: Range<usize>, + range: Range<u8>, data: [u8; 4], } @@ -114,7 +114,7 @@ pub fn escape_default(c: u8) -> EscapeDefault { impl Iterator for EscapeDefault { type Item = u8; fn next(&mut self) -> Option<u8> { - self.range.next().map(|i| self.data[i]) + self.range.next().map(|i| self.data[i as usize]) } fn size_hint(&self) -> (usize, Option<usize>) { self.range.size_hint() @@ -126,7 +126,7 @@ impl Iterator for EscapeDefault { #[stable(feature = "rust1", since = "1.0.0")] impl DoubleEndedIterator for EscapeDefault { fn next_back(&mut self) -> Option<u8> { - self.range.next_back().map(|i| self.data[i]) + self.range.next_back().map(|i| self.data[i as usize]) } } #[stable(feature = "rust1", since = "1.0.0")] @@ -138,7 +138,9 @@ impl FusedIterator for EscapeDefault {} impl fmt::Display for EscapeDefault { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { // SAFETY: ok because `escape_default` created only valid utf-8 data - f.write_str(unsafe { from_utf8_unchecked(&self.data[self.range.clone()]) }) + f.write_str(unsafe { + from_utf8_unchecked(&self.data[(self.range.start as usize)..(self.range.end as usize)]) + }) } } |
