From de3dfacee07b80f97161b1abf78ea7fb382a01e8 Mon Sep 17 00:00:00 2001 From: Poly Date: Sat, 13 Feb 2021 00:04:45 +0100 Subject: [PATCH] [Debug Trait] General cleanup and small fixes --- src/backend/drm/atomic/mod.rs | 8 +++++--- src/backend/drm/atomic/surface.rs | 3 ++- src/backend/drm/egl/mod.rs | 7 +++++-- src/backend/drm/eglstream/mod.rs | 9 +++++++-- src/backend/graphics/gl.rs | 10 ---------- src/backend/graphics/glium.rs | 16 ++++++++++++++-- src/backend/libinput/mod.rs | 18 ++++++++++++------ src/backend/session/dbus/logind.rs | 2 +- src/backend/winit.rs | 19 ++++++++++++++++--- 9 files changed, 62 insertions(+), 30 deletions(-) diff --git a/src/backend/drm/atomic/mod.rs b/src/backend/drm/atomic/mod.rs index 856c017..dcaf7d4 100644 --- a/src/backend/drm/atomic/mod.rs +++ b/src/backend/drm/atomic/mod.rs @@ -60,7 +60,7 @@ pub struct AtomicDrmDevice { logger: ::slog::Logger, } -impl fmt::Debug for AtomicDrmDevice { +impl fmt::Debug for AtomicDrmDevice { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let mut debug = f.debug_struct("AtomicDrmDevice"); @@ -68,7 +68,8 @@ impl fmt::Debug for AtomicDrmDevice { .field("dev", &self.dev) .field("dev_id", &self.dev_id) .field("active", &self.active) - .field("backends", &self.backends); + .field("backends", &self.backends) + .field("handler", &"..."); #[cfg(feature = "backend_session")] debug.field("links", &self.links); @@ -100,9 +101,10 @@ pub(in crate::backend::drm) struct Dev { logger: ::slog::Logger, } -impl fmt::Debug for Dev { +impl fmt::Debug for Dev { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("Dev") + .field("fd", &self.fd) .field("privileged", &self.privileged) .field("active", &self.active) .field("old_state", &self.old_state) diff --git a/src/backend/drm/atomic/surface.rs b/src/backend/drm/atomic/surface.rs index 475aec6..fc05cee 100644 --- a/src/backend/drm/atomic/surface.rs +++ b/src/backend/drm/atomic/surface.rs @@ -48,9 +48,10 @@ pub(in crate::backend::drm) struct AtomicDrmSurfaceInternal>, } -impl fmt::Debug for AtomicDrmSurfaceInternal { +impl fmt::Debug for AtomicDrmSurfaceInternal { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("AtomicDrmSurfaceInternal") + .field("dev", &self.dev) .field("crtc", &self.crtc) .field("cursor", &self.cursor) .field("planse", &self.planes) diff --git a/src/backend/drm/egl/mod.rs b/src/backend/drm/egl/mod.rs index c45f04c..0261058 100644 --- a/src/backend/drm/egl/mod.rs +++ b/src/backend/drm/egl/mod.rs @@ -73,17 +73,20 @@ where impl fmt::Debug for EglDevice where B: Backend::Surface, Error = <::Surface as Surface>::Error> + + fmt::Debug + 'static, - D: Device + NativeDisplay + 'static, + D: Device + NativeDisplay + fmt::Debug + 'static, ::Surface: NativeSurface::Surface as Surface>::Error>, { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let mut debug = f.debug_struct("EglDevice"); debug + .field("dev", &self.dev) .field("logger", &self.logger) .field("default_attributes", &self.default_attributes) - .field("default_requirements", &self.default_requirements); + .field("default_requirements", &self.default_requirements) + .field("backends", &"..."); #[cfg(feature = "backend_session")] debug.field("links", &self.links); diff --git a/src/backend/drm/eglstream/mod.rs b/src/backend/drm/eglstream/mod.rs index aef74a3..c579c2c 100644 --- a/src/backend/drm/eglstream/mod.rs +++ b/src/backend/drm/eglstream/mod.rs @@ -91,10 +91,15 @@ pub struct EglStreamDevice { links: Vec, } -impl fmt::Debug for EglStreamDevice { +impl fmt::Debug for EglStreamDevice { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let mut debug = f.debug_struct("EglStreamDevice"); - debug.field("dev", &self.dev).field("logger", &self.logger); + debug + .field("dev", &self.dev) + .field("raw", &self.raw) + .field("backends", &"...") + .field("logger", &self.logger); + #[cfg(feature = "backend_session")] debug.field("links", &self.links); debug.finish() diff --git a/src/backend/graphics/gl.rs b/src/backend/graphics/gl.rs index 58a4991..8aa1fc0 100644 --- a/src/backend/graphics/gl.rs +++ b/src/backend/graphics/gl.rs @@ -1,7 +1,6 @@ //! OpenGL rendering types use nix::libc::c_void; -use std::fmt; use super::{PixelFormat, SwapBuffersError}; @@ -40,15 +39,6 @@ pub trait GLGraphicsBackend { /// Returns the pixel format of the main framebuffer of the context. fn get_pixel_format(&self) -> PixelFormat; - - /// Formats the debug value using the given formatter. - fn debug_fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_struct("GLGraphicsBackend") - .field("framebuffer_dimensions", &self.get_framebuffer_dimensions()) - .field("is_current", &self.is_current()) - .field("pixel_format", &self.get_pixel_format()) - .finish() - } } /// Loads a Raw GLES Interface for a given [`GLGraphicsBackend`] diff --git a/src/backend/graphics/glium.rs b/src/backend/graphics/glium.rs index d1f7979..8168ab5 100644 --- a/src/backend/graphics/glium.rs +++ b/src/backend/graphics/glium.rs @@ -25,10 +25,22 @@ pub struct GliumGraphicsBackend { impl fmt::Debug for GliumGraphicsBackend { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - let backend = &self.backend.0.borrow().debug_fmt(f); + struct BackendDebug<'a, T: GLGraphicsBackend>(&'a Rc>); + impl<'a, T: GLGraphicsBackend> fmt::Debug for BackendDebug<'a, T> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let b = &self.0 .0.borrow(); + f.debug_struct("GLGraphicsBackend") + .field("framebuffer_dimensions", &b.get_framebuffer_dimensions()) + .field("is_current", &b.is_current()) + .field("pixel_format", &b.get_pixel_format()) + .finish() + } + } f.debug_struct("GliumGraphicsBackend") - .field("backend", backend) + .field("context", &"...") + .field("backend", &BackendDebug(&self.backend)) + .field("error_channel", &"...") .finish() } } diff --git a/src/backend/libinput/mod.rs b/src/backend/libinput/mod.rs index cac97c2..1c16236 100644 --- a/src/backend/libinput/mod.rs +++ b/src/backend/libinput/mod.rs @@ -430,13 +430,19 @@ pub struct LibinputSessionInterface(S); #[cfg(feature = "backend_session")] impl fmt::Debug for LibinputSessionInterface { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - let sesion = &f - .debug_struct("Session") - .field("is_active", &self.0.is_active()) - .field("seat", &self.0.seat()) - .finish(); + struct SessionDebug<'a, S: Session>(&'a S); + impl<'a, S: Session> fmt::Debug for SessionDebug<'a, S> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("Session") + .field("is_active", &self.0.is_active()) + .field("seat", &self.0.seat()) + .finish() + } + } - f.debug_tuple("LibinputSessionInterface").field(sesion).finish() + f.debug_tuple("LibinputSessionInterface") + .field(&SessionDebug(&self.0)) + .finish() } } diff --git a/src/backend/session/dbus/logind.rs b/src/backend/session/dbus/logind.rs index 6294e19..c51a49c 100644 --- a/src/backend/session/dbus/logind.rs +++ b/src/backend/session/dbus/logind.rs @@ -75,7 +75,7 @@ impl fmt::Debug for LogindSessionImpl { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("LogindSessionImpl ") .field("session_id", &self.session_id) - .field("conn", &"..") + .field("conn", &"...") .field("session_path", &self.session_path) .field("active", &self.active) .field("signaler", &self.signaler) diff --git a/src/backend/winit.rs b/src/backend/winit.rs index 995c6fd..5a501ea 100644 --- a/src/backend/winit.rs +++ b/src/backend/winit.rs @@ -69,10 +69,23 @@ enum Window { impl fmt::Debug for Window { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { - Window::Wayland { .. } => f.debug_tuple("Window::Wayland"), - Window::X11 { .. } => f.debug_tuple("Window::X11"), + Window::Wayland { display, context, .. } => f + .debug_struct("Window::Wayland") + .field("display", &display) + .field("context", &context) + .field("surface", &"...") + .finish(), + Window::X11 { + display, + context, + surface, + } => f + .debug_struct("Window::X11") + .field("display", &display) + .field("context", &context) + .field("surface", &surface) + .finish(), } - .finish() } }