|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
/// Visitor passed into `Trace` types.
|
|
|
|
|
pub trait Tracer {
|
|
|
|
|
fn int(&mut self, i: i64);
|
|
|
|
|
fn bytes(&mut self, b: &[u8]);
|
|
|
|
|
fn string(&mut self, s: &str);
|
|
|
|
|
fn symbol(&mut self, name: &str);
|
|
|
|
@ -25,6 +26,12 @@ impl Trace for &str {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl Trace for usize {
|
|
|
|
|
fn trace(&self, t: &mut dyn Tracer) {
|
|
|
|
|
t.int(*self as i64);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl<T> Trace for Option<T>
|
|
|
|
|
where
|
|
|
|
|
T: Trace,
|
|
|
|
|