1#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
12#[repr(C)]
13pub enum DebugLevel {
14 Trace,
16 Debug,
18 Info,
20 Warn,
22 Error,
24}
25
26impl Default for DebugLevel {
27 fn default() -> Self {
28 DebugLevel::Debug
29 }
30}
31
32#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
34#[repr(C)]
35pub enum DebugCategory {
36 General,
38 Window,
40 EventLoop,
42 Input,
44 Layout,
46 Text,
48 DisplayList,
50 SceneBuilding,
52 Rendering,
54 Resources,
56 Callbacks,
58 Timer,
60 DebugServer,
62 Platform,
64 Icon,
66}
67
68impl Default for DebugCategory {
69 fn default() -> Self {
70 DebugCategory::General
71 }
72}
73
74#[macro_export]
82macro_rules! log_trace {
83 ($logger:expr, $category:ident, $($arg:tt)*) => {
84 if let Some(ref mut logger) = $logger {
85 logger.trace($crate::debug::DebugCategory::$category, format!($($arg)*));
86 }
87 };
88}
89
90#[macro_export]
92macro_rules! log_debug {
93 ($logger:expr, $category:ident, $($arg:tt)*) => {
94 if let Some(ref mut logger) = $logger {
95 logger.debug($crate::debug::DebugCategory::$category, format!($($arg)*));
96 }
97 };
98}
99
100#[macro_export]
102macro_rules! log_info {
103 ($logger:expr, $category:ident, $($arg:tt)*) => {
104 if let Some(ref mut logger) = $logger {
105 logger.info($crate::debug::DebugCategory::$category, format!($($arg)*));
106 }
107 };
108}
109
110#[macro_export]
112macro_rules! log_warn {
113 ($logger:expr, $category:ident, $($arg:tt)*) => {
114 if let Some(ref mut logger) = $logger {
115 logger.warn($crate::debug::DebugCategory::$category, format!($($arg)*));
116 }
117 };
118}
119
120#[macro_export]
122macro_rules! log_error {
123 ($logger:expr, $category:ident, $($arg:tt)*) => {
124 if let Some(ref mut logger) = $logger {
125 logger.error($crate::debug::DebugCategory::$category, format!($($arg)*));
126 }
127 };
128}
129