Module annotate_snippets::snippet
[−]
[src]
Snippet module contains structures used to generate the Snippet to be formatted.
Example:
use annotate_snippets::snippet::{Snippet, Slice, Annotation, TitleAnnotation, AnnotationType}; let snippet = Snippet { slice: Slice { source: r#" ) -> Option<String> { for ann in annotations { match (ann.range.0, ann.range.1) { (None, None) => continue, (Some(start), Some(end)) if start > end_index => continue, (Some(start), Some(end)) if start >= start_index => { let label = if let Some(ref label) = ann.label { format!(" {}", label) } else { String::from("") }; return Some(format!( "{}{}{}", " ".repeat(start - start_index), "^".repeat(end - start), label )); } _ => continue, } } "#.to_string(), line_start: 51, origin: Some("src/format.rs".to_string()) }, title: Some(TitleAnnotation { label: Some("mismatched types".to_string()), id: Some("E0308".to_string()), annotation_type: AnnotationType::Error, }), main_annotation_pos: Some(0), fold: Some(true), annotations: vec![ Annotation { label: Some("expected `Option<String>` because of return type".to_string()), annotation_type: AnnotationType::Warning, range: Some((6, 20)) }, Annotation { label: Some("expected enum `std::option::Option".to_string()), annotation_type: AnnotationType::Error, range: Some((23, 787)) }, ] }; let output = format!("{}", snippet);
Structs
Annotation |
An Annotation is a pointer to a place in the Slice which is to be annotated. |
Slice |
Structure containing the slice of text to be annotated and basic information about the location of the slice. |
Snippet |
Primary structure provided for formatting |
TitleAnnotation |
An annotation used to describe the whole snippet. |
Enums
AnnotationType |
Types of annotations. |