azalea_log/
lib.rs

1//! # azalea-log
2//!
3//! Wrappers around glib's log methods
4
5pub static LOG_NAME: &str = "Azalea";
6pub use glib;
7
8#[macro_export]
9macro_rules! error {
10    ($format:literal, $($arg:expr),* $(,)?) => {{
11        $crate::glib::g_log!($crate::LOG_NAME, $crate::glib::LogLevel::Error, $format, $($arg),*);
12        panic!()
13    }};
14    ($format:literal $(,)?) => {{
15        $crate::glib::g_log!($crate::LOG_NAME, $crate::glib::LogLevel::Error, $format);
16        panic!()
17    }};
18    ($context:ty, $format:literal, $($arg:expr),* $(,)?) => {{
19        $crate::error!("[{}] {}", std::any::type_name::<$context>(), format!($format, $($arg),*));
20    }};
21    ($context:ty, $format:literal $(,)?) => {{
22        $crate::error!("[{}] {}", std::any::type_name::<$context>(), $format);
23    }};
24}
25
26#[macro_export]
27macro_rules! critical {
28    ($format:literal, $($arg:expr),* $(,)?) => {{
29        $crate::glib::g_log!($crate::LOG_NAME, $crate::glib::LogLevel::Critical, $format, $($arg),*);
30    }};
31    ($format:literal $(,)?) => {{
32        $crate::glib::g_log!($crate::LOG_NAME, $crate::glib::LogLevel::Critical, $format);
33    }};
34    ($context:ty, $format:literal, $($arg:expr),* $(,)?) => {{
35        $crate::critical!("[{}] {}", std::any::type_name::<$context>(), format!($format, $($arg),*));
36    }};
37    ($context:ty, $format:literal $(,)?) => {{
38        $crate::critical!("[{}] {}", std::any::type_name::<$context>(), $format);
39    }};
40}
41
42#[macro_export]
43macro_rules! warning {
44    ($format:literal, $($arg:expr),* $(,)?) => {{
45        $crate::glib::g_log!($crate::LOG_NAME, $crate::glib::LogLevel::Warning, $format, $($arg),*);
46    }};
47    ($format:literal $(,)?) => {{
48        $crate::glib::g_log!($crate::LOG_NAME, $crate::glib::LogLevel::Warning, $format);
49    }};
50    ($context:ty, $format:literal, $($arg:expr),* $(,)?) => {{
51        $crate::warning!("[{}] {}", std::any::type_name::<$context>(), format!($format, $($arg),*));
52    }};
53    ($context:ty, $format:literal $(,)?) => {{
54        $crate::warning!("[{}] {}", std::any::type_name::<$context>(), $format);
55    }};
56}
57
58#[macro_export]
59macro_rules! message {
60    ($format:literal, $($arg:expr),* $(,)?) => {{
61        $crate::glib::g_log!($crate::LOG_NAME, $crate::glib::LogLevel::Message, $format, $($arg),*);
62    }};
63    ($format:literal $(,)?) => {{
64        $crate::glib::g_log!($crate::LOG_NAME, $crate::glib::LogLevel::Message, $format);
65    }};
66    ($context:ty, $format:literal, $($arg:expr),* $(,)?) => {{
67        $crate::message!("[{}] {}", std::any::type_name::<$context>(), format!($format, $($arg),*));
68    }};
69    ($context:ty, $format:literal $(,)?) => {{
70        $crate::message!("[{}] {}", std::any::type_name::<$context>(), $format);
71    }};
72}
73
74#[macro_export]
75macro_rules! info {
76    ($format:literal, $($arg:expr),* $(,)?) => {{
77        $crate::glib::g_log!($crate::LOG_NAME, $crate::glib::LogLevel::Info, $format, $($arg),*);
78    }};
79    ($format:literal $(,)?) => {{
80        $crate::glib::g_log!($crate::LOG_NAME, $crate::glib::LogLevel::Info, $format);
81    }};
82    ($context:ty, $format:literal, $($arg:expr),* $(,)?) => {{
83        $crate::info!("[{}] {}", std::any::type_name::<$context>(), format!($format, $($arg),*));
84    }};
85    ($context:ty, $format:literal $(,)?) => {{
86        $crate::info!("[{}] {}", std::any::type_name::<$context>(), $format);
87    }};
88}
89
90#[macro_export]
91macro_rules! debug {
92    ($format:literal, $($arg:expr),* $(,)?) => {{
93        $crate::glib::g_log!($crate::LOG_NAME, $crate::glib::LogLevel::Debug, $format, $($arg),*);
94    }};
95    ($format:literal $(,)?) => {{
96        $crate::glib::g_log!($crate::LOG_NAME, $crate::glib::LogLevel::Debug, $format);
97    }};
98    ($context:ty, $format:literal, $($arg:expr),* $(,)?) => {{
99        $crate::debug!("[{}] {}", std::any::type_name::<$context>(), format!($format, $($arg),*));
100    }};
101    ($context:ty, $format:literal $(,)?) => {{
102        $crate::debug!("[{}] {}", std::any::type_name::<$context>(), $format);
103    }};
104}