typed_log 0.1.1

Logging shouldn't be limited to text.
Documentation
fn main() {
    typed_log::push_log_impl(|garden: &library::Garden| {
        println!("{:?}", garden);
    });
    typed_log::push_log_impl(|garden: &library::Garden| {
        for _ in 0..garden.flower_amount {
            print!("🌸");
        }
        println!();
        println!("Thanks for visiting my garden.")
    });
    typed_log::push_log_any(|garden: &dyn typed_log::Loggable| {
        println!("the address of this it sgarden is: {:p}", &garden);
    });

    library::make_a_garden();
}

mod library {
    use std::any::TypeId;

    use typed_log::{Loggable, log_any};

    #[derive(Debug)]
    pub struct Garden {
        pub flower_amount: usize,
    }

    impl Loggable for Garden {
        fn type_id(&self) -> std::any::TypeId {
            TypeId::of::<Self>()
        }
    }

    pub fn make_a_garden() {
        let garden = Garden { flower_amount: 10 };
        log_any(&garden);
    }
}