style_term/color/
true_color.rs

1use std::fmt::{Display, Formatter};
2use crate::color::{Color, DisplayColor};
3
4#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5#[derive(Debug, Clone)]
6/// Uses a R G B value
7/// Stored a tuple of (u8, u8, u8)
8///
9/// You can create one via TrueColor::from((r,g,b))
10pub struct TrueColor(u8, u8, u8);
11
12impl From<(u8, u8, u8)> for TrueColor {
13    fn from((r, g, b): (u8, u8, u8)) -> Self {
14        TrueColor(r, g, b)
15    }
16}
17
18impl Display for TrueColor {
19    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
20        write!(f, "2;{};{};{}", self.0, self.1, self.2)
21    }
22}
23
24
25impl DisplayColor for TrueColor {}
26
27impl From<TrueColor> for Color {
28    fn from(color: TrueColor) -> Self {
29        Color::TrueColor(color)
30    }
31}