1use iced_widget::{Text, text};
5
6#[derive(Copy, Clone, Debug, Hash)]
8pub enum RequiredIcons {
9 CaretDownFill,
11 CaretLeftFill,
13 CaretRightFill,
15 CaretUpFill,
17 Check,
19 X,
21}
22
23#[must_use]
25pub const fn icon_to_char(icon: RequiredIcons) -> char {
26 match icon {
27 RequiredIcons::CaretDownFill => '\u{f217}',
28 RequiredIcons::CaretLeftFill => '\u{f21b}',
29 RequiredIcons::CaretRightFill => '\u{f21f}',
30 RequiredIcons::CaretUpFill => '\u{f223}',
31 RequiredIcons::Check => '\u{f25c}',
32 RequiredIcons::X => '\u{f5ae}',
33 }
34}
35
36#[must_use]
38pub fn icon_to_string(icon: RequiredIcons) -> String {
39 icon_to_char(icon).to_string()
40}
41
42pub fn to_text<'a>(icon: RequiredIcons) -> Text<'a> {
43 text(icon_to_char(icon).to_string()).font(super::REQUIRED_FONT)
44}
45
46impl From<RequiredIcons> for char {
47 fn from(icon: RequiredIcons) -> Self {
48 icon_to_char(icon)
49 }
50}
51
52impl From<RequiredIcons> for String {
53 fn from(icon: RequiredIcons) -> Self {
54 format!("{}", icon_to_char(icon))
55 }
56}
57
58impl std::fmt::Display for RequiredIcons {
59 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
60 write!(f, "{}", icon_to_char(*self))
61 }
62}