tighten up the log level changing

This commit is contained in:
Joe Ardent 2025-07-30 12:41:18 -07:00
parent 7ecca3709d
commit 7072055f38

View file

@ -221,29 +221,14 @@ impl App {
}
}
fn change_log_level(delta: i8) {
let level = log::max_level();
use LevelFilter::*;
let nl = if delta.signum().is_positive() {
match level {
Off => Error,
Error => Warn,
Warn => Info,
Info => Debug,
Debug => Trace,
Trace => Trace,
}
} else {
match level {
Off => Off,
Error => Off,
Warn => Error,
Info => Warn,
Debug => Info,
Trace => Debug,
}
};
log::set_max_level(nl);
fn change_log_level(delta: isize) {
let level = log::max_level() as isize;
let max = log::LevelFilter::max() as isize;
let level = (level + delta).clamp(0, max) as usize;
// levelfilter is repr(usize) so this is safe
let level = unsafe { std::mem::transmute::<usize, LevelFilter>(level) };
log::set_max_level(level);
}
impl Widget for &App {