tighten up the log level changing
This commit is contained in:
parent
7ecca3709d
commit
7072055f38
1 changed files with 8 additions and 23 deletions
|
@ -221,29 +221,14 @@ impl App {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn change_log_level(delta: i8) {
|
fn change_log_level(delta: isize) {
|
||||||
let level = log::max_level();
|
let level = log::max_level() as isize;
|
||||||
use LevelFilter::*;
|
let max = log::LevelFilter::max() as isize;
|
||||||
let nl = if delta.signum().is_positive() {
|
let level = (level + delta).clamp(0, max) as usize;
|
||||||
match level {
|
// levelfilter is repr(usize) so this is safe
|
||||||
Off => Error,
|
let level = unsafe { std::mem::transmute::<usize, LevelFilter>(level) };
|
||||||
Error => Warn,
|
|
||||||
Warn => Info,
|
log::set_max_level(level);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Widget for &App {
|
impl Widget for &App {
|
||||||
|
|
Loading…
Reference in a new issue