aboutsummaryrefslogtreecommitdiff
path: root/common/object/src/inspect.rs
diff options
context:
space:
mode:
Diffstat (limited to 'common/object/src/inspect.rs')
-rw-r--r--common/object/src/inspect.rs24
1 files changed, 20 insertions, 4 deletions
diff --git a/common/object/src/inspect.rs b/common/object/src/inspect.rs
index 871fae8..21648bd 100644
--- a/common/object/src/inspect.rs
+++ b/common/object/src/inspect.rs
@@ -4,11 +4,12 @@
Copyright (C) 2026 metamuffin <metamuffin.org>
*/
-use crate::{Object, Registry, types::*};
-use std::fmt::Debug;
+use crate::{Object, Registry, Tag, TypedTag, types::*};
+use std::{any::type_name, fmt::Debug};
-pub struct ObjectInpector<'a>(pub &'a Registry, pub Object<'a>);
-impl Debug for ObjectInpector<'_> {
+pub struct Inspector<'a, T>(pub &'a Registry, pub T);
+
+impl Debug for Inspector<'_, Object<'_>> {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
let mut s = f.debug_struct("Object");
let mut nonexhaustive = false;
@@ -36,3 +37,18 @@ impl Debug for ObjectInpector<'_> {
}
}
}
+
+impl<T> Debug for Inspector<'_, TypedTag<T>> {
+ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+ let name = self.0.info(self.1.0).map(|t| t.name).unwrap_or("unknown");
+ f.debug_tuple(&format!("TypedTag<{}>", type_name::<T>()))
+ .field(&name)
+ .finish()
+ }
+}
+impl Debug for Inspector<'_, Tag> {
+ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+ let name = self.0.info(self.1).map(|t| t.name).unwrap_or("unknown");
+ f.debug_tuple("Tag").field(&name).finish()
+ }
+}