use annotate_snippets::display_list::DisplayList; use annotate_snippets::formatter::DisplayListFormatter; use annotate_snippets::snippet::{Annotation, AnnotationType, Slice, Snippet, SourceAnnotation}; fn main() { let snippet = Snippet { title: Some(Annotation { label: Some("mismatched types".to_string()), id: Some("E0308".to_string()), annotation_type: AnnotationType::Error, }), footer: vec![Annotation { label: Some( "expected type: `snippet::Annotation`\n found type: `__&__snippet::Annotation`" .to_string(), ), id: None, annotation_type: AnnotationType::Note, }], slices: vec![Slice { source: " slices: vec![\"A\",".to_string(), line_start: 13, origin: Some("src/multislice.rs".to_string()), fold: false, annotations: vec![SourceAnnotation { label: "expected struct `annotate_snippets::snippet::Slice`, found reference" .to_string(), range: (21, 24), annotation_type: AnnotationType::Error, }], }], }; let dl = DisplayList::from(snippet); let dlf = DisplayListFormatter::new(true, false); println!("{}", dlf.format(&dl)); }