Skip to main content

yazi_core/notify/
level.rs

1use std::sync::Arc;
2
3use serde::{Deserialize, Serialize};
4use yazi_config::{Style, THEME};
5
6#[derive(Clone, Copy, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
7#[serde(rename_all = "kebab-case")]
8pub enum MessageLevel {
9	#[default]
10	Info,
11	Warn,
12	Error,
13}
14
15impl MessageLevel {
16	pub fn icon(self) -> Arc<String> {
17		match self {
18			Self::Info => THEME.notify.icon_info.load_full(),
19			Self::Warn => THEME.notify.icon_info.load_full(),
20			Self::Error => THEME.notify.icon_info.load_full(),
21		}
22	}
23
24	pub fn style(self) -> Style {
25		match self {
26			Self::Info => THEME.notify.title_info.get(),
27			Self::Warn => THEME.notify.title_warn.get(),
28			Self::Error => THEME.notify.title_error.get(),
29		}
30	}
31}