diff options
| author | The 8472 <git@infinite-source.de> | 2023-06-21 20:49:18 +0200 |
|---|---|---|
| committer | The 8472 <git@infinite-source.de> | 2023-06-29 01:55:03 +0200 |
| commit | 6c87448b57890eabd11103fcb2ab8f5e687a02cc (patch) | |
| tree | 1ec2967208e35e6b308a77939a6b49a49e4bca09 /library/core/src/ascii.rs | |
| parent | 5ea66686467d3ec5f8c81570e7f0f16ad8dd8cc3 (diff) | |
| download | rust-6c87448b57890eabd11103fcb2ab8f5e687a02cc.tar.gz rust-6c87448b57890eabd11103fcb2ab8f5e687a02cc.zip | |
optimize Cstr/EscapeAscii display
old:
ascii::bench_ascii_escape_display_mixed 17.97µs/iter +/- 204.00ns
ascii::bench_ascii_escape_display_no_escape 545.00ns/iter +/- 6.00ns
new:
ascii::bench_ascii_escape_display_mixed 4.99µs/iter +/- 56.00ns
ascii::bench_ascii_escape_display_no_escape 91.00ns/iter +/- 1.00ns
Diffstat (limited to 'library/core/src/ascii.rs')
| -rw-r--r-- | library/core/src/ascii.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/library/core/src/ascii.rs b/library/core/src/ascii.rs index ef8e4d098ed..02867789b79 100644 --- a/library/core/src/ascii.rs +++ b/library/core/src/ascii.rs @@ -96,6 +96,17 @@ pub fn escape_default(c: u8) -> EscapeDefault { EscapeDefault(escape::EscapeIterInner::new(data, range)) } +impl EscapeDefault { + pub(crate) fn empty() -> Self { + let data = [Char::Null; 4]; + EscapeDefault(escape::EscapeIterInner::new(data, 0..0)) + } + + pub(crate) fn as_str(&self) -> &str { + self.0.as_str() + } +} + #[stable(feature = "rust1", since = "1.0.0")] impl Iterator for EscapeDefault { type Item = u8; |
