aboutsummaryrefslogtreecommitdiff
path: root/vendor/anstream/benches/strip.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/anstream/benches/strip.rs')
-rw-r--r--vendor/anstream/benches/strip.rs102
1 files changed, 0 insertions, 102 deletions
diff --git a/vendor/anstream/benches/strip.rs b/vendor/anstream/benches/strip.rs
deleted file mode 100644
index 9ed6178..0000000
--- a/vendor/anstream/benches/strip.rs
+++ /dev/null
@@ -1,102 +0,0 @@
-use criterion::{black_box, Criterion};
-
-#[derive(Default)]
-struct Strip(String);
-impl Strip {
- fn with_capacity(capacity: usize) -> Self {
- Self(String::with_capacity(capacity))
- }
-}
-impl anstyle_parse::Perform for Strip {
- fn print(&mut self, c: char) {
- self.0.push(c);
- }
-
- fn execute(&mut self, byte: u8) {
- if byte.is_ascii_whitespace() {
- self.0.push(byte as char);
- }
- }
-}
-
-fn strip(c: &mut Criterion) {
- for (name, content) in [
- ("demo.vte", &include_bytes!("../tests/demo.vte")[..]),
- ("rg_help.vte", &include_bytes!("../tests/rg_help.vte")[..]),
- ("rg_linus.vte", &include_bytes!("../tests/rg_linus.vte")[..]),
- (
- "state_changes",
- &b"\x1b]2;X\x1b\\ \x1b[0m \x1bP0@\x1b\\"[..],
- ),
- ] {
- // Make sure the comparison is fair
- if let Ok(content) = std::str::from_utf8(content) {
- let mut stripped = Strip::with_capacity(content.len());
- let mut parser = anstyle_parse::Parser::<anstyle_parse::DefaultCharAccumulator>::new();
- for byte in content.as_bytes() {
- parser.advance(&mut stripped, *byte);
- }
- assert_eq!(
- stripped.0,
- anstream::adapter::strip_str(content).to_string()
- );
- assert_eq!(
- stripped.0,
- String::from_utf8(anstream::adapter::strip_bytes(content.as_bytes()).into_vec())
- .unwrap()
- );
- }
-
- let mut group = c.benchmark_group(name);
- group.bench_function("advance_strip", |b| {
- b.iter(|| {
- let mut stripped = Strip::with_capacity(content.len());
- let mut parser =
- anstyle_parse::Parser::<anstyle_parse::DefaultCharAccumulator>::new();
-
- for byte in content {
- parser.advance(&mut stripped, *byte);
- }
-
- black_box(stripped.0)
- })
- });
- group.bench_function("strip_ansi_escapes", |b| {
- b.iter(|| {
- let stripped = strip_ansi_escapes::strip(content);
-
- black_box(stripped)
- })
- });
- if let Ok(content) = std::str::from_utf8(content) {
- group.bench_function("strip_str", |b| {
- b.iter(|| {
- let stripped = anstream::adapter::strip_str(content).to_string();
-
- black_box(stripped)
- })
- });
- group.bench_function("StripStr", |b| {
- b.iter(|| {
- let mut stripped = String::with_capacity(content.len());
- let mut state = anstream::adapter::StripStr::new();
- for printable in state.strip_next(content) {
- stripped.push_str(printable);
- }
-
- black_box(stripped)
- })
- });
- }
- group.bench_function("strip_bytes", |b| {
- b.iter(|| {
- let stripped = anstream::adapter::strip_bytes(content).into_vec();
-
- black_box(stripped)
- })
- });
- }
-}
-
-criterion::criterion_group!(benches, strip);
-criterion::criterion_main!(benches);