use log::kv::{Key, Source, ToKey, ToValue, Value, Visitor, Error};
#[derive(Debug)]
pub enum Span {
End,
Start,
}
impl ToKey for Span {
fn to_key(&self) -> Key<'_> {
"span_mark".into()
}
}
impl ToValue for Span {
fn to_value(&self) -> Value<'_> {
match self {
Self::End => "end".into(),
Self::Start => "start".into(),
}
}
}
impl Source for Span {
fn visit<'kvs>(&'kvs self, visitor: &mut dyn Visitor<'kvs>) -> Result<(), Error> where Self: Sized {
visitor.visit_pair(self.to_key(), self.to_value())?;
Ok(())
}
#[inline]
fn count(&self) -> usize {
1
}
}