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.