1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
//! Format [diagnostic reports][Report], including highlighting snippets of text
//!
//! # Example
//!
//! ```rust
//! # #[allow(clippy::needless_doctest_main)]
//! ```
//!
//!
//! # Visual overview
//!
//! [`Report`]
//!
//!
//! ### Primary group
//!
//! [`Title`]
//! ```text
//! error: cannot construct `Box<_, _>` with struct literal syntax due to private fields
//! ```
//!
//!
//! [`Annotation`] on a [`Snippet`]
//! ```text
//! ╭▸ $DIR/multi-suggestion.rs:17:13
//! │
//! 17 │ let _ = Box {};
//! │ ━━━
//! │
//! ```
//!
//! [`Message`]
//! ```text
//! ╰ note: private fields `0` and `1` that were not provided
//! ```
//!
//!
//!
//! ### Secondary group: suggested fix
//!
//! [`Title`] (proposed solution)
//! ```text
//! help: you might have meant to use an associated function to build this type
//! ```
//!
//! [`Patch`] Option 1 on a [`Snippet`]
//! ```text
//! ╭╴
//! 21 - let _ = Box {};
//! 21 + let _ = Box::new(_);
//! ├╴
//! ```
//!
//! [`Patch`] Option 2 on a [`Snippet`]
//! ```text
//! ├╴
//! 17 - let _ = Box {};
//! 17 + let _ = Box::new_uninit();
//! ├╴
//! ```
//!
//! *etc for Options 3 and 4*
//!
//! [`Message`]
//! ```text
//! ╰ and 12 other candidates
//! ```
//!
//! ### Secondary group: alternative suggested fix
//!
//! [`Title`] (proposed solution)
//! ```text
//! help: consider using the `Default` trait
//! ```
//!
//! Only [`Patch`] on a [`Snippet`]
//! ```text
//! ╭╴
//! 17 - let _ = Box {};
//! 17 + let _ = <Box as std::default::Default>::default();
//! ╰╴
//! ```
//!
//! # Cargo `features`
//!
//! - `simd` - Speeds up folding
//!
//! - `testing-colors` - Makes [Renderer::styled] colors OS independent, which
//! allows for easier testing when testing colored output. It should be added as
//! a feature in `[dev-dependencies]`, which can be done with the following command:
//! ```text
//! cargo add annotate-snippets --dev --feature testing-colors
//! ```
extern crate alloc;
use String;
/// Normalize the string to avoid any unicode control characters.
///
/// This is important for untrusted input, as it can contain
/// invalid unicode sequences.
pub use Level;
pub use Renderer;
pub use *;
;