Crates.io | pi_print_any |
lib.rs | pi_print_any |
version | 0.1.2 |
source | src |
created_at | 2022-05-12 02:40:41.031183 |
updated_at | 2022-08-26 06:00:04.20656 |
description | print any value without trait bounds using specialization (Rust nightly channel) |
homepage | |
repository | https://github.com/GaiaWorld/pi_print_any.git |
max_upload_size | |
id | 584982 |
size | 5,905 |
output without the trait bounds (using specialization to find the right impl anyway)
output value for type of impl Debug, output type name for unimplDebug.
#[derive(Debug)]
struct A(usize);
struct B(usize);
fn main() {
println_any!("{:?}", A(1)); // output: A(1)
println_any!("{:?}", B(1)); // output: `pi_print_any::B`
print_any!("{:?}", A(1)); // output: A(1)
print_any!("{:?}", B(1)); // output: `pi_print_any::B`
}
In addition to using print and println output, you can also use other macros to output, out_any
allows you to pass in the output macro you want to use
#[derive(Debug)]
struct A(usize);
struct B(usize);
fn main() {
out_any!(log::info, "{:?}", A(1)); // output: A(1)
out_any!(log::info, "{:?}", B(1)); // output: `pi_print_any::B`
}