Reorganize codebase into modular structure
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
// Logging utilities
|
||||
|
||||
// Log levels
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
|
||||
pub enum LogLevel {
|
||||
Debug,
|
||||
Info,
|
||||
Warning,
|
||||
Error,
|
||||
}
|
||||
|
||||
// Global log level (could be made configurable)
|
||||
static mut CURRENT_LOG_LEVEL: LogLevel = LogLevel::Info;
|
||||
|
||||
// Set the global log level
|
||||
pub fn set_log_level(level: LogLevel) {
|
||||
unsafe {
|
||||
CURRENT_LOG_LEVEL = level;
|
||||
}
|
||||
}
|
||||
|
||||
// Get the current log level
|
||||
pub fn get_log_level() -> LogLevel {
|
||||
unsafe {
|
||||
CURRENT_LOG_LEVEL
|
||||
}
|
||||
}
|
||||
|
||||
// Log a message at the specified level
|
||||
pub fn log(level: LogLevel, message: &str) {
|
||||
if level >= unsafe { CURRENT_LOG_LEVEL } {
|
||||
let prefix = match level {
|
||||
LogLevel::Debug => "[DEBUG]",
|
||||
LogLevel::Info => "[INFO]",
|
||||
LogLevel::Warning => "[WARNING]",
|
||||
LogLevel::Error => "[ERROR]",
|
||||
};
|
||||
|
||||
println!("{} {}", prefix, message);
|
||||
}
|
||||
}
|
||||
|
||||
// Convenience functions for different log levels
|
||||
pub fn debug(message: &str) {
|
||||
log(LogLevel::Debug, message);
|
||||
}
|
||||
|
||||
pub fn info(message: &str) {
|
||||
log(LogLevel::Info, message);
|
||||
}
|
||||
|
||||
pub fn warning(message: &str) {
|
||||
log(LogLevel::Warning, message);
|
||||
}
|
||||
|
||||
pub fn error(message: &str) {
|
||||
log(LogLevel::Error, message);
|
||||
}
|
||||
Reference in New Issue
Block a user