| Crates.io | p-macro |
| lib.rs | p-macro |
| version | 0.2.0 |
| created_at | 2015-08-05 21:38:16.075757+00 |
| updated_at | 2015-12-11 23:54:49.267883+00 |
| description | p!() is a macro used for printing values while debugging |
| homepage | |
| repository | https://github.com/dlight/p-macro |
| max_upload_size | |
| id | 2764 |
| size | 4,315 |
Tired of typing {:?}? This crate defines a macro p!() shorter to
type than println!(), for your debugging needs.
Add this to your Cargo.toml:
[dependencies]
p-macro = "*"
And use like this:
#[macro_use] extern crate p_macro;
fn main() {
let x = 5;
let y = 2;
p!(x + y); // same as println!("x + y = {:?}", x + y);
p!(x, y); // same as println!("x = {:?}, y = {:?}", x, y);
p!(); // same as println!("");
}
It does other things too. With a colon you disable printing the source code snippet:
p!(:10, :"a"); // same as println!("{:?} {:?}", 10, "a");
It accepts multiple lines too:
let (a, b, c) = (1, 2, 3);
p! {
a, b, c;
a + b, 0, 1;
};
// same as:
// println!("a = {:?}, b = {:?}, c = {:?}", a, b, c);
// println!("a + b = {:?}, 0 = {:?}, 1 = {:?}", a + b, 0, 1);
Strings are printed with quotes. If this is undesirable, prefix them
with an _. This will make the macro use Display instead of Debug.
p!(_"Test"); // same as println!("{}", "Test");
let a = "x"; p!(_ a); // if necessary insert a space
To run the file on the examples folder, type cargo run --example print.