embedded_graphics/text/renderer/character_style.rs
1use crate::{pixelcolor::PixelColor, text::DecorationColor};
2
3/// Character style.
4///
5/// This trait is used to modify character styles programmatically, for example, to implement
6/// rendering of text with multiple colors. Applications shouldn't use this trait and instead use
7/// the character style types that are provided by the text renderer, like `MonoTextStyle` and
8/// `MonoTextStyleBuilder` for the integrated font support.
9///
10/// # Implementation notes
11///
12/// Text renderers don't need to support all settings in this trait. All calls to unsupported
13/// setters should be ignored by the implementation. The trait provided empty default
14/// implementations for all setters.
15pub trait CharacterStyle: Clone {
16 /// The color type.
17 type Color: PixelColor;
18
19 /// Sets the text color.
20 fn set_text_color(&mut self, _text_color: Option<Self::Color>) {}
21
22 /// Sets the background color.
23 fn set_background_color(&mut self, _background_color: Option<Self::Color>) {}
24
25 /// Sets the underline color.
26 fn set_underline_color(&mut self, _underline_color: DecorationColor<Self::Color>) {}
27
28 /// Sets the strikethrough color.
29 fn set_strikethrough_color(&mut self, _strikethrough_color: DecorationColor<Self::Color>) {}
30}