diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
commit | 698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch) | |
tree | 173a775858bd501c378080a10dca74132f05bc50 /vendor/annotate-snippets-0.8.0/examples/format.rs | |
parent | Initial commit. (diff) | |
download | rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip |
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/annotate-snippets-0.8.0/examples/format.rs')
-rw-r--r-- | vendor/annotate-snippets-0.8.0/examples/format.rs | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/vendor/annotate-snippets-0.8.0/examples/format.rs b/vendor/annotate-snippets-0.8.0/examples/format.rs new file mode 100644 index 000000000..98b77a140 --- /dev/null +++ b/vendor/annotate-snippets-0.8.0/examples/format.rs @@ -0,0 +1,61 @@ +use annotate_snippets::{ + display_list::{DisplayList, FormatOptions}, + snippet::{Annotation, AnnotationType, Slice, Snippet, SourceAnnotation}, +}; + +fn main() { + let snippet = Snippet { + slices: vec![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, + } + }"#, + line_start: 51, + origin: Some("src/format.rs"), + fold: false, + annotations: vec![ + SourceAnnotation { + label: "expected `Option<String>` because of return type", + annotation_type: AnnotationType::Warning, + range: (5, 19), + }, + SourceAnnotation { + label: "expected enum `std::option::Option`", + annotation_type: AnnotationType::Error, + range: (26, 724), + }, + ], + }], + title: Some(Annotation { + label: Some("mismatched types"), + id: Some("E0308"), + annotation_type: AnnotationType::Error, + }), + footer: vec![], + opt: FormatOptions { + color: true, + ..Default::default() + }, + }; + + let dl = DisplayList::from(snippet); + println!("{}", dl); +} |