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) {
|
||||
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 {
|
||||
|
|
Loading…
Reference in a new issue