From 698f8c2f01ea549d77d7dc3338a12e04c11057b9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:02:58 +0200 Subject: Adding upstream version 1.64.0+dfsg1. Signed-off-by: Daniel Baumann --- vendor/annotate-snippets/src/snippet.rs | 88 +++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 vendor/annotate-snippets/src/snippet.rs (limited to 'vendor/annotate-snippets/src/snippet.rs') diff --git a/vendor/annotate-snippets/src/snippet.rs b/vendor/annotate-snippets/src/snippet.rs new file mode 100644 index 000000000..bc7ba0099 --- /dev/null +++ b/vendor/annotate-snippets/src/snippet.rs @@ -0,0 +1,88 @@ +//! Structures used as an input for the library. +//! +//! Example: +//! +//! ``` +//! use annotate_snippets::snippet::*; +//! +//! Snippet { +//! title: Some(Annotation { +//! label: Some("mismatched types"), +//! id: None, +//! annotation_type: AnnotationType::Error, +//! }), +//! footer: vec![], +//! slices: vec![ +//! Slice { +//! source: "Foo", +//! line_start: 51, +//! origin: Some("src/format.rs"), +//! fold: false, +//! annotations: vec![], +//! }, +//! Slice { +//! source: "Faa", +//! line_start: 129, +//! origin: Some("src/display.rs"), +//! fold: false, +//! annotations: vec![], +//! }, +//! ], +//! opt: Default::default(), +//! }; +//! ``` +use crate::display_list::FormatOptions; + +/// Primary structure provided for formatting +#[derive(Debug, Default)] +pub struct Snippet<'a> { + pub title: Option>, + pub footer: Vec>, + pub slices: Vec>, + pub opt: FormatOptions, +} + +/// Structure containing the slice of text to be annotated and +/// basic information about the location of the slice. +/// +/// One `Slice` is meant to represent a single, continuous, +/// slice of source code that you want to annotate. +#[derive(Debug)] +pub struct Slice<'a> { + pub source: &'a str, + pub line_start: usize, + pub origin: Option<&'a str>, + pub annotations: Vec>, + /// If set explicitly to `true`, the snippet will fold + /// parts of the slice that don't contain any annotations. + pub fold: bool, +} + +/// Types of annotations. +#[derive(Debug, Clone, Copy, PartialEq)] +pub enum AnnotationType { + /// Error annotations are displayed using red color and "^" character. + Error, + /// Warning annotations are displayed using blue color and "-" character. + Warning, + Info, + Note, + Help, +} + +/// An annotation for a `Slice`. +#[derive(Debug)] +pub struct SourceAnnotation<'a> { + pub range: (usize, usize), + pub label: &'a str, + pub annotation_type: AnnotationType, +} + +/// An annotation for a `Snippet`. +#[derive(Debug)] +pub struct Annotation<'a> { + /// Identifier of the annotation. Usually error code like "E0308". + pub id: Option<&'a str>, + pub label: Option<&'a str>, + pub annotation_type: AnnotationType, +} -- cgit v1.2.3