[][src]Trait stakker_log::Visitable

pub trait Visitable {
    fn visit(&self, key: Option<&str>, output: &mut dyn LogVisitor);
}

This trait allows a stakker::LogVisitor to visit various fundamental Rust types and collections.

This allows all of those types to be used as values in the logging macros. It does this by mapping them to the fixed set of kv_* methods available on the stakker::LogVisitor. Most fundamental Rust types, plus map-like and array-like collections have a straightforward mapping. Integer types larger than 64-bits are output as strings. Option is handled by including the key-value pair for Some, or omitting it for None.

For other types which must be formatted as a string, construct a std::fmt::Arguments instance using format_args! first, and then visit that. For your own complex types which need structured output, you should write your own Visitable implementation.

For example:

var1.visit("key1", visitor);     // Handle according to type
var2.visit("key2", visitor);
format_args!("{}", var3).visit("key3", visitor);   // Display formatting
format_args!("{:?}", var4).visit("key4", visitor); // Debug formatting

Required methods

fn visit(&self, key: Option<&str>, output: &mut dyn LogVisitor)[src]

Loading content...

Implementations on Foreign Types

impl<T: Visitable> Visitable for Option<T>[src]

impl Visitable for &str[src]

impl Visitable for String[src]

impl Visitable for ()[src]

impl<'a> Visitable for Arguments<'a>[src]

impl Visitable for u8[src]

impl Visitable for u16[src]

impl Visitable for u32[src]

impl Visitable for u64[src]

impl Visitable for usize[src]

impl Visitable for i8[src]

impl Visitable for i16[src]

impl Visitable for i32[src]

impl Visitable for i64[src]

impl Visitable for isize[src]

impl Visitable for f32[src]

impl Visitable for f64[src]

impl Visitable for bool[src]

impl Visitable for char[src]

impl Visitable for u128[src]

impl Visitable for i128[src]

impl<T: Visitable> Visitable for [T][src]

impl<T: Visitable> Visitable for Vec<T>[src]

impl<T: Visitable> Visitable for VecDeque<T>[src]

impl<T: Visitable> Visitable for LinkedList<T>[src]

impl<T: Visitable> Visitable for HashSet<T>[src]

impl<T: Visitable> Visitable for BTreeSet<T>[src]

impl<T: Visitable> Visitable for BinaryHeap<T>[src]

impl<K: AsRef<str>, V: Visitable> Visitable for HashMap<K, V>[src]

impl<K: AsRef<str>, V: Visitable> Visitable for BTreeMap<K, V>[src]

Loading content...

Implementors

Loading content...