diff options
author | The Depressed Milkman <github@tdmm.eu> | 2022-11-07 20:14:46 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2022-11-16 13:44:19 +0100 |
commit | 33c663172bd472e043f0b453d2d45c50699ff628 (patch) | |
tree | d5fff72a045bcd7fa37038bf95d92dd72cc581eb /src/encoded_string.rs | |
parent | 8a7054ef7a7c7a6f1ccd507e6921f69c07abfeec (diff) |
Decrease number of heap allocations, and more
Sent over the course of 2 diffs, no real functionality changes, but a
couple general code improvements. The second email reads:
> string encoding/decoding has been rewritten. The duplicate_elements()
> function no longer allocates like crazy. The try_move() and do_move()
> functions still need work, but have not been touched because they will
> likely be rewritten shortly.
Diffstat (limited to 'src/encoded_string.rs')
-rw-r--r-- | src/encoded_string.rs | 26 |
1 files changed, 0 insertions, 26 deletions
diff --git a/src/encoded_string.rs b/src/encoded_string.rs deleted file mode 100644 index 55090a9..0000000 --- a/src/encoded_string.rs +++ /dev/null @@ -1,26 +0,0 @@ -use std::str; - -pub struct EncodedString<'a> { - pub s: str::Bytes<'a>, -} - -impl<'a> Iterator for EncodedString<'a> { - type Item = u8; - - fn next(&mut self) -> Option<Self::Item> { - self.s.next().map(|c| match c { - b'\\' => match self.s.next() { - Some(b'n') => b'\n', - Some(b'\\') | None => b'\\', - Some(c) => c - }, - c => c - }) - } -} - -impl<'a> EncodedString<'a> { - pub fn decode(self) -> String { - String::from_utf8(self.s.collect()).unwrap() - } -} |