Expand description
Format diagnostic reports, including highlighting snippets of text
§Example
use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Level, Renderer, Snippet};
fn main() {
    let source = r#"                annotations: vec![SourceAnnotation {
                label: "expected struct `annotate_snippets::snippet::Slice`, found reference"
                    ,
                range: <22, 25>,"#;
    let report =
        &[Level::ERROR
            .primary_title("expected type, found `22`")
            .element(
                Snippet::source(source)
                    .line_start(26)
                    .path("examples/footer.rs")
                    .annotation(AnnotationKind::Primary.span(193..195).label(
                        "expected struct `annotate_snippets::snippet::Slice`, found reference",
                    ))
                    .annotation(
                        AnnotationKind::Context
                            .span(34..50)
                            .label("while parsing this struct"),
                    ),
            )];
    let renderer = Renderer::styled().decor_style(DecorStyle::Unicode);
    anstream::println!("{}", renderer.render(report));
}§Visual overview
§Primary group
error: cannot construct `Box<_, _>` with struct literal syntax due to private fieldsAnnotation on a Snippet
   ╭▸ $DIR/multi-suggestion.rs:17:13
   │
17 │     let _ = Box {};
   │             ━━━
   │   ╰ note: private fields `0` and `1` that were not provided§Secondary group: suggested fix
Title (proposed solution)
help: you might have meant to use an associated function to build this type   ╭╴
21 -     let _ = Box {};
21 +     let _ = Box::new(_);
   ├╴   ├╴
17 -     let _ = Box {};
17 +     let _ = Box::new_uninit();
   ├╴etc for Options 3 and 4
   ╰ and 12 other candidates§Secondary group: alternative suggested fix
Title (proposed solution)
help: consider using the `Default` trait   ╭╴
17 -     let _ = Box {};
17 +     let _ = <Box as std::default::Default>::default();
   ╰╴§Cargo features
- 
simd- Speeds up folding
- 
testing-colors- Makes Renderer::styled colors OS independent, which allows for easier testing when testing colored output. It should be added as a feature in[dev-dependencies], which can be done with the following command:
cargo add annotate-snippets --dev --feature testing-colorsModules§
Structs§
- Annotation
- Highlight and describe a span of text within a Snippet
- Group
- A Titlewith supporting context within aReport
- Level
- Severity level for Titles andMessages
- Message
- A text Elementin aGroup
- OptionCow 
- Origin
- A source location Elementin aGroup
- Padding
- A whitespace Elementin aGroup
- Patch
- Suggested edit to the Snippet
- Renderer
- The Renderer for a Report
- Snippet
- A source view Elementin aGroup
- Title
- A title that introduces a Group, describing the main point
Enums§
- AnnotationKind 
- The type of Annotationbeing applied to aSnippet
- Element
- A section of content within a Group
Functions§
- normalize_untrusted_ str 
- Normalize the string to avoid any unicode control characters.
Type Aliases§
- Report
- A diagnostic message and any associated context to help users understand it