summaryrefslogtreecommitdiffstats
path: root/vendor/annotate-snippets-0.8.0/src/formatter/style.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
commit698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch)
tree173a775858bd501c378080a10dca74132f05bc50 /vendor/annotate-snippets-0.8.0/src/formatter/style.rs
parentInitial commit. (diff)
downloadrustc-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 '')
-rw-r--r--vendor/annotate-snippets-0.8.0/src/formatter/style.rs52
1 files changed, 52 insertions, 0 deletions
diff --git a/vendor/annotate-snippets-0.8.0/src/formatter/style.rs b/vendor/annotate-snippets-0.8.0/src/formatter/style.rs
new file mode 100644
index 000000000..f76e6b0ab
--- /dev/null
+++ b/vendor/annotate-snippets-0.8.0/src/formatter/style.rs
@@ -0,0 +1,52 @@
+//! Set of structures required to implement a stylesheet
+//!
+//! In order to provide additional styling information for the
+//! formatter, a structs can implement `Stylesheet` and `Style`
+//! traits.
+//!
+use std::fmt;
+
+/// StyleClass is a collection of named variants of style classes
+pub enum StyleClass {
+ /// Message indicating an error.
+ Error,
+ /// Message indicating a warning.
+ Warning,
+ /// Message indicating an information.
+ Info,
+ /// Message indicating a note.
+ Note,
+ /// Message indicating a help.
+ Help,
+
+ /// Style for line numbers.
+ LineNo,
+
+ /// Parts of the text that are to be emphasised.
+ Emphasis,
+
+ /// Parts of the text that are regular. Usually a no-op.
+ None,
+}
+
+/// This trait implements a return value for the `Stylesheet::get_style`.
+pub trait Style {
+ /// The method used to write text with formatter
+ fn paint(&self, text: &str, f: &mut fmt::Formatter<'_>) -> fmt::Result;
+ /// The method used to write display function with formatter
+ fn paint_fn<'a>(
+ &self,
+ c: Box<dyn FnOnce(&mut fmt::Formatter<'_>) -> fmt::Result + 'a>,
+ f: &mut fmt::Formatter<'_>,
+ ) -> fmt::Result;
+ /// The method used by the DisplayListFormatter to display the message
+ /// in bold font.
+ fn bold(&self) -> Box<dyn Style>;
+}
+
+/// Trait to annotate structs that can provide `Style` implementations for
+/// every `StyleClass` variant.
+pub trait Stylesheet {
+ /// Returns a `Style` implementer based on the requested `StyleClass` variant.
+ fn get_style(&self, class: StyleClass) -> Box<dyn Style>;
+}