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
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user