# Print Queues A print queue that can be add from different thread and print on main thread just use [tracing](https://docs.rs/tracing/latest/tracing/) fr fr this is project to learn how to publish on [crates.io](https://crates.io) # Usage ### Simple Usage ```rust struct Person<'a> { name: &'a str, } impl<'a> std::fmt::Display for Person<'a> { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { write!(f, "Hello: {}", self.name) } } fn main() { let person = Person { name: "John doe" }; print_queues::init(); print_queues::add("John Doe"); print_queues::add(person); print_queues::print(); /* "John Doe" "Hello: John doe" */ } ``` ```rust print_queues::add("John"); print_queues::add("Doe"); let r = print_queues::next().unwrap(); // John let r = print_queues::next().unwrap(); // Doe ``` ### Thread Usage ```rust fn main() { print_queues::init(); let th = std::thread::spawn(move || { // some server or application loop that want to print print_queues::add("Hello, Server!"); std::thread::sleep( std::time::Duration::from_secs(3) ); }); while !th.is_finished() { print_queues::print(); std::thread::sleep( std::time::Duration::from_millis(1) ); } } ```