pub trait Inspector: Sized {
type ChildInspector<'a>: Inspector;
Show 18 methods
// Required methods
fn record_child<F>(&mut self, name: &str, f: F)
where F: FnOnce(&mut Self::ChildInspector<'_>);
fn record_unnamed_child<F>(&mut self, f: F)
where F: FnOnce(&mut Self::ChildInspector<'_>);
fn record_usize<T>(&mut self, name: &str, value: T)
where T: Into<usize>;
fn record_uint<T>(&mut self, name: &str, value: T)
where T: Into<u64>;
fn record_int<T>(&mut self, name: &str, value: T)
where T: Into<i64>;
fn record_double<T>(&mut self, name: &str, value: T)
where T: Into<f64>;
fn record_str(&mut self, name: &str, value: &str);
fn record_string(&mut self, name: &str, value: String);
fn record_bool(&mut self, name: &str, value: bool);
// Provided methods
fn record_display_child<T, F>(&mut self, name: T, f: F)
where T: Display,
F: FnOnce(&mut Self::ChildInspector<'_>) { ... }
fn record_debug_child<T, F>(&mut self, name: T, f: F)
where T: Debug,
F: FnOnce(&mut Self::ChildInspector<'_>) { ... }
fn record_display<T>(&mut self, name: &str, value: T)
where T: Display { ... }
fn record_debug<T>(&mut self, name: &str, value: T)
where T: Debug { ... }
fn record_ip_addr<A>(&mut self, name: &str, value: A)
where A: IpAddress { ... }
fn record_inspectable_value<V>(&mut self, name: &str, value: &V)
where V: InspectableValue { ... }
fn record_instant<V>(&mut self, name: InstantPropertyName, value: &V)
where V: InspectableInstant { ... }
fn record_inspectable<V>(&mut self, name: &str, value: &V)
where V: Inspectable { ... }
fn delegate_inspectable<V>(&mut self, value: &V)
where V: Inspectable { ... }
}
Expand description
A trait abstracting a state inspector.
This trait follows roughly the same shape as the API provided by the fuchsia_inspect crate, but we abstract it out so not to take the dependency.
Given we have the trait, we can fill it in with some helpful default implementations for common types that are exposed as well, like IP addresses and such.
Required Associated Types§
Sourcetype ChildInspector<'a>: Inspector
type ChildInspector<'a>: Inspector
The type given to record contained children.
Required Methods§
Sourcefn record_child<F>(&mut self, name: &str, f: F)where
F: FnOnce(&mut Self::ChildInspector<'_>),
fn record_child<F>(&mut self, name: &str, f: F)where
F: FnOnce(&mut Self::ChildInspector<'_>),
Records a nested inspector with name
calling f
with the nested child
to be filled in.
This is used to group and contextualize data.
Sourcefn record_unnamed_child<F>(&mut self, f: F)where
F: FnOnce(&mut Self::ChildInspector<'_>),
fn record_unnamed_child<F>(&mut self, f: F)where
F: FnOnce(&mut Self::ChildInspector<'_>),
Records a child without a name.
The Inpector
is expected to keep track of the number of unnamed
children and allocate names appropriately from that.
Sourcefn record_usize<T>(&mut self, name: &str, value: T)
fn record_usize<T>(&mut self, name: &str, value: T)
Records anything that can be represented by a usize.
Sourcefn record_uint<T>(&mut self, name: &str, value: T)
fn record_uint<T>(&mut self, name: &str, value: T)
Records anything that can be represented by a u64.
Sourcefn record_int<T>(&mut self, name: &str, value: T)
fn record_int<T>(&mut self, name: &str, value: T)
Records anything that can be represented by a i64.
Sourcefn record_double<T>(&mut self, name: &str, value: T)
fn record_double<T>(&mut self, name: &str, value: T)
Records anything that can be represented by a f64.
Sourcefn record_str(&mut self, name: &str, value: &str)
fn record_str(&mut self, name: &str, value: &str)
Records a str value.
Sourcefn record_string(&mut self, name: &str, value: String)
fn record_string(&mut self, name: &str, value: String)
Records an owned string.
Sourcefn record_bool(&mut self, name: &str, value: bool)
fn record_bool(&mut self, name: &str, value: bool)
Records a boolean.
Provided Methods§
Sourcefn record_display_child<T, F>(&mut self, name: T, f: F)
fn record_display_child<T, F>(&mut self, name: T, f: F)
Records a child whose name is the display implementation of T
.
Sourcefn record_debug_child<T, F>(&mut self, name: T, f: F)
fn record_debug_child<T, F>(&mut self, name: T, f: F)
Records a child whose name is the Debug implementation of T
.
Sourcefn record_display<T>(&mut self, name: &str, value: T)where
T: Display,
fn record_display<T>(&mut self, name: &str, value: T)where
T: Display,
Records a value
that implements Display
as its display string.
Sourcefn record_debug<T>(&mut self, name: &str, value: T)where
T: Debug,
fn record_debug<T>(&mut self, name: &str, value: T)where
T: Debug,
Records a value
that implements Debug
as its debug string.
Sourcefn record_ip_addr<A>(&mut self, name: &str, value: A)where
A: IpAddress,
fn record_ip_addr<A>(&mut self, name: &str, value: A)where
A: IpAddress,
Records an IP address.
Sourcefn record_inspectable_value<V>(&mut self, name: &str, value: &V)where
V: InspectableValue,
fn record_inspectable_value<V>(&mut self, name: &str, value: &V)where
V: InspectableValue,
Records an implementor of InspectableValue
.
Sourcefn record_instant<V>(&mut self, name: InstantPropertyName, value: &V)where
V: InspectableInstant,
fn record_instant<V>(&mut self, name: InstantPropertyName, value: &V)where
V: InspectableInstant,
Records an implementor of InspectableInstant
.
Sourcefn record_inspectable<V>(&mut self, name: &str, value: &V)where
V: Inspectable,
fn record_inspectable<V>(&mut self, name: &str, value: &V)where
V: Inspectable,
Records an implementor of Inspectable
under name
.
Sourcefn delegate_inspectable<V>(&mut self, value: &V)where
V: Inspectable,
fn delegate_inspectable<V>(&mut self, value: &V)where
V: Inspectable,
Delegates more fields to be added by an Inspectable
implementation.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.