use log::LevelFilter;
#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
pub(crate) struct Filter {
module: &'static str,
level: LevelFilter,
}
impl Filter {
pub fn new(module: &'static str, level: LevelFilter) -> Self {
Self { module, level }
}
pub fn module(&self) -> &'static str {
self.module
}
pub fn level(&self) -> LevelFilter {
self.level
}
}
#[cfg(test)]
mod tests {
use super::Filter;
use log::LevelFilter;
#[test]
fn module() {
let filter = Filter::new("godot_logger::filter", LevelFilter::Debug);
assert_eq!(filter.module(), "godot_logger::filter");
}
#[test]
fn level() {
let filter = Filter::new("godot_logger::filter", LevelFilter::Debug);
assert!(matches!(filter.level(), LevelFilter::Debug));
}
#[test]
fn trait_send() {
fn assert_send<T: Send>() {}
assert_send::<Filter>();
}
#[test]
fn trait_sync() {
fn assert_sync<T: Sync>() {}
assert_sync::<Filter>();
}
}