| use super::utility_types::MessageLoggingVerbosity; |
| use crate::messages::prelude::*; |
|
|
| #[derive(Debug, Default)] |
| pub struct DebugMessageHandler { |
| pub message_logging_verbosity: MessageLoggingVerbosity, |
| } |
|
|
| impl MessageHandler<DebugMessage, ()> for DebugMessageHandler { |
| fn process_message(&mut self, message: DebugMessage, responses: &mut VecDeque<Message>, _data: ()) { |
| match message { |
| DebugMessage::ToggleTraceLogs => { |
| if log::max_level() == log::LevelFilter::Debug { |
| log::set_max_level(log::LevelFilter::Trace); |
| } else { |
| log::set_max_level(log::LevelFilter::Debug); |
| } |
|
|
| |
| responses.add(MenuBarMessage::SendLayout); |
| } |
| DebugMessage::MessageOff => { |
| self.message_logging_verbosity = MessageLoggingVerbosity::Off; |
|
|
| |
| responses.add(MenuBarMessage::SendLayout); |
| } |
| DebugMessage::MessageNames => { |
| self.message_logging_verbosity = MessageLoggingVerbosity::Names; |
|
|
| |
| responses.add(MenuBarMessage::SendLayout); |
| } |
| DebugMessage::MessageContents => { |
| self.message_logging_verbosity = MessageLoggingVerbosity::Contents; |
|
|
| |
| responses.add(MenuBarMessage::SendLayout); |
| } |
| } |
| } |
|
|
| advertise_actions!(DebugMessageDiscriminant; |
| ToggleTraceLogs, |
| MessageOff, |
| MessageNames, |
| MessageContents, |
| ); |
| } |
|
|