Skip to content

Commit 9076cbf

Browse files
committed
feat: Add Renderer
1 parent a5f00ab commit 9076cbf

File tree

9 files changed

+47
-23
lines changed

9 files changed

+47
-23
lines changed

benches/simple.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ extern crate criterion;
44

55
use criterion::{black_box, Criterion};
66

7+
use annotate_snippets::renderer::Renderer;
78
use annotate_snippets::{
8-
display_list::{DisplayList, FormatOptions},
9+
display_list::FormatOptions,
910
snippet::{Annotation, AnnotationType, Slice, Snippet, SourceAnnotation},
1011
};
1112

@@ -62,8 +63,8 @@ fn create_snippet() {
6263
},
6364
};
6465

65-
let dl = DisplayList::from(snippet);
66-
let _result = dl.to_string();
66+
let renderer = Renderer;
67+
let _result = renderer.render(snippet).to_string();
6768
}
6869

6970
pub fn criterion_benchmark(c: &mut Criterion) {

examples/expected_type.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1+
use annotate_snippets::renderer::Renderer;
12
use annotate_snippets::{
2-
display_list::{DisplayList, FormatOptions},
3+
display_list::FormatOptions,
34
snippet::{Annotation, AnnotationType, Slice, Snippet, SourceAnnotation},
45
};
56

@@ -38,6 +39,6 @@ fn main() {
3839
},
3940
};
4041

41-
let dl = DisplayList::from(snippet);
42-
println!("{}", dl);
42+
let renderer = Renderer;
43+
println!("{}", renderer.render(snippet));
4344
}

examples/footer.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1+
use annotate_snippets::renderer::Renderer;
12
use annotate_snippets::{
2-
display_list::{DisplayList, FormatOptions},
3+
display_list::FormatOptions,
34
snippet::{Annotation, AnnotationType, Slice, Snippet, SourceAnnotation},
45
};
56

@@ -34,6 +35,6 @@ fn main() {
3435
},
3536
};
3637

37-
let dl = DisplayList::from(snippet);
38-
println!("{}", dl);
38+
let renderer = Renderer;
39+
println!("{}", renderer.render(snippet));
3940
}

examples/format.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1+
use annotate_snippets::renderer::Renderer;
12
use annotate_snippets::{
2-
display_list::{DisplayList, FormatOptions},
3+
display_list::FormatOptions,
34
snippet::{Annotation, AnnotationType, Slice, Snippet, SourceAnnotation},
45
};
56

@@ -56,6 +57,6 @@ fn main() {
5657
},
5758
};
5859

59-
let dl = DisplayList::from(snippet);
60-
println!("{}", dl);
60+
let renderer = Renderer;
61+
println!("{}", renderer.render(snippet));
6162
}

examples/multislice.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1+
use annotate_snippets::renderer::Renderer;
12
use annotate_snippets::{
2-
display_list::{DisplayList, FormatOptions},
3+
display_list::FormatOptions,
34
snippet::{Annotation, AnnotationType, Slice, Snippet},
45
};
56

@@ -33,6 +34,6 @@ fn main() {
3334
},
3435
};
3536

36-
let dl = DisplayList::from(snippet);
37-
println!("{}", dl);
37+
let renderer = Renderer;
38+
println!("{}", renderer.render(snippet));
3839
}

src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -50,5 +50,6 @@
5050

5151
pub mod display_list;
5252
pub mod formatter;
53+
pub mod renderer;
5354
pub mod snippet;
5455
pub mod stylesheets;

src/renderer/mod.rs

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
use crate::display_list::DisplayList;
2+
use crate::snippet::Snippet;
3+
use std::fmt::Display;
4+
5+
pub struct Renderer;
6+
7+
impl Renderer {
8+
pub fn render<'a>(&'a self, snippet: Snippet<'a>) -> impl Display + 'a {
9+
DisplayList::from(snippet)
10+
}
11+
}

tests/fixtures_test.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ mod diff;
22
mod snippet;
33

44
use crate::snippet::SnippetDef;
5-
use annotate_snippets::{display_list::DisplayList, snippet::Snippet};
5+
use annotate_snippets::renderer::Renderer;
6+
use annotate_snippets::snippet::Snippet;
67
use glob::glob;
78
use std::{error::Error, fs::File, io, io::prelude::*};
89

@@ -30,8 +31,8 @@ fn test_fixtures() {
3031
let snippet = read_fixture(&src).expect("Failed to read file");
3132
let expected_out = read_file(&path_out).expect("Failed to read file");
3233

33-
let dl = DisplayList::from(snippet);
34-
let actual_out = dl.to_string();
34+
let renderer = Renderer;
35+
let actual_out = renderer.render(snippet).to_string();
3536
println!("{}", expected_out);
3637
println!("{}", actual_out.trim_end());
3738

tests/formatter.rs

+11-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use annotate_snippets::display_list::*;
2+
use annotate_snippets::renderer::Renderer;
23
use annotate_snippets::snippet::{self, Snippet};
34

45
#[test]
@@ -548,7 +549,8 @@ fn test_i_29() {
548549
| ^^^^ oops
549550
|"#;
550551

551-
assert_eq!(DisplayList::from(snippets).to_string(), expected);
552+
let renderer = Renderer;
553+
assert_eq!(renderer.render(snippets).to_string(), expected);
552554
}
553555

554556
#[test]
@@ -576,7 +578,8 @@ fn test_point_to_double_width_characters() {
576578
| ^^^^ world
577579
|"#;
578580

579-
assert_eq!(DisplayList::from(snippets).to_string(), expected);
581+
let renderer = Renderer;
582+
assert_eq!(renderer.render(snippets).to_string(), expected);
580583
}
581584

582585
#[test]
@@ -606,7 +609,8 @@ fn test_point_to_double_width_characters_across_lines() {
606609
| |______^ Good morning
607610
|"#;
608611

609-
assert_eq!(DisplayList::from(snippets).to_string(), expected);
612+
let renderer = Renderer;
613+
assert_eq!(renderer.render(snippets).to_string(), expected);
610614
}
611615

612616
#[test]
@@ -643,7 +647,8 @@ fn test_point_to_double_width_characters_multiple() {
643647
| ---- note: Sushi2
644648
|"#;
645649

646-
assert_eq!(DisplayList::from(snippets).to_string(), expected);
650+
let renderer = Renderer;
651+
assert_eq!(renderer.render(snippets).to_string(), expected);
647652
}
648653

649654
#[test]
@@ -671,5 +676,6 @@ fn test_point_to_double_width_characters_mixed() {
671676
| ^^^^^^^^^^^ New world
672677
|"#;
673678

674-
assert_eq!(DisplayList::from(snippets).to_string(), expected);
679+
let renderer = Renderer;
680+
assert_eq!(renderer.render(snippets).to_string(), expected);
675681
}

0 commit comments

Comments
 (0)