servoshell/desktop/
tracing.rs
macro_rules! trace_winit_event {
($event:expr, $($rest:tt)+) => {
::log::trace!(target: $crate::desktop::tracing::LogTarget::log_target(&$event), $($rest)+)
};
}
pub(crate) use trace_winit_event;
pub(crate) trait LogTarget {
fn log_target(&self) -> &'static str;
}
mod from_winit {
use super::LogTarget;
use crate::desktop::events_loop::WakerEvent;
macro_rules! target {
($($name:literal)+) => {
concat!("servoshell<winit@", $($name),+)
};
}
impl LogTarget for winit::event::Event<WakerEvent> {
fn log_target(&self) -> &'static str {
use winit::event::StartCause;
match self {
Self::NewEvents(start_cause) => match start_cause {
StartCause::ResumeTimeReached { .. } => target!("NewEvents(ResumeTimeReached)"),
StartCause::WaitCancelled { .. } => target!("NewEvents(WaitCancelled)"),
StartCause::Poll => target!("NewEvents(Poll)"),
StartCause::Init => target!("NewEvents(Init)"),
},
Self::WindowEvent { event, .. } => event.log_target(),
Self::DeviceEvent { .. } => target!("DeviceEvent"),
Self::UserEvent(WakerEvent) => target!("UserEvent(WakerEvent)"),
Self::Suspended => target!("Suspended"),
Self::Resumed => target!("Resumed"),
Self::AboutToWait => target!("AboutToWait"),
Self::LoopExiting => target!("LoopExiting"),
Self::MemoryWarning => target!("MemoryWarning"),
}
}
}
impl LogTarget for winit::event::WindowEvent {
fn log_target(&self) -> &'static str {
macro_rules! target_variant {
($name:literal) => {
target!("WindowEvent(" $name ")")
};
}
match self {
Self::ActivationTokenDone { .. } => target!("ActivationTokenDone"),
Self::Resized(..) => target_variant!("Resized"),
Self::Moved(..) => target_variant!("Moved"),
Self::CloseRequested => target_variant!("CloseRequested"),
Self::Destroyed => target_variant!("Destroyed"),
Self::DroppedFile(..) => target_variant!("DroppedFile"),
Self::HoveredFile(..) => target_variant!("HoveredFile"),
Self::HoveredFileCancelled => target_variant!("HoveredFileCancelled"),
Self::Focused(..) => target_variant!("Focused"),
Self::KeyboardInput { .. } => target_variant!("KeyboardInput"),
Self::ModifiersChanged(..) => target_variant!("ModifiersChanged"),
Self::Ime(..) => target_variant!("Ime"),
Self::CursorMoved { .. } => target_variant!("CursorMoved"),
Self::CursorEntered { .. } => target_variant!("CursorEntered"),
Self::CursorLeft { .. } => target_variant!("CursorLeft"),
Self::MouseWheel { .. } => target_variant!("MouseWheel"),
Self::MouseInput { .. } => target_variant!("MouseInput"),
Self::PanGesture { .. } => target_variant!("PanGesture"),
Self::PinchGesture { .. } => target_variant!("PinchGesture"),
Self::DoubleTapGesture { .. } => target_variant!("DoubleTapGesture"),
Self::RotationGesture { .. } => target_variant!("RotationGesture"),
Self::TouchpadPressure { .. } => target_variant!("TouchpadPressure"),
Self::AxisMotion { .. } => target_variant!("AxisMotion"),
Self::Touch(..) => target_variant!("Touch"),
Self::ScaleFactorChanged { .. } => target_variant!("ScaleFactorChanged"),
Self::ThemeChanged(..) => target_variant!("ThemeChanged"),
Self::Occluded(..) => target_variant!("Occluded"),
Self::RedrawRequested => target!("RedrawRequested"),
}
}
}
}