diff options
| author | klensy <klensy@users.noreply.github.com> | 2021-09-16 18:10:04 +0300 | 
|---|---|---|
| committer | klensy <klensy@users.noreply.github.com> | 2021-09-18 14:20:00 +0300 | 
| commit | cccd6e0e830fcaaa5891102f48b10786c24a2fe5 (patch) | |
| tree | 9a72d17e95b5884a8a85dbdaa612dc4025e1342d /library/core/src/ascii.rs | |
| parent | 2b5ddf36fdc784106b3a064d93dd054c32b1f10f (diff) | |
| download | rust-cccd6e0e830fcaaa5891102f48b10786c24a2fe5.tar.gz rust-cccd6e0e830fcaaa5891102f48b10786c24a2fe5.zip | |
EscapeDefault: change `range` field to `Range<u8>`, reducing struct size 24 -> 6 bytes
Diffstat (limited to 'library/core/src/ascii.rs')
| -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)]) + }) } } | 
