| Crates.io | q-debug |
| lib.rs | q-debug |
| version | 0.1.1 |
| created_at | 2020-07-24 19:30:23.666325+00 |
| updated_at | 2020-07-25 06:27:01.704974+00 |
| description | Quick and dirty debugging for tired Rust programmers |
| homepage | https://github.com/SteadBytes/q-rs |
| repository | https://github.com/SteadBytes/q-rs |
| max_upload_size | |
| id | 269207 |
| size | 26,989 |
Quick and dirty debugging for tired Rust programmers.
#[macro_use]
extern crate q_debug;
fn hello(name: &str) -> String {
q!(name);
format!("Hello, {}!", name)
}
fn main() {
// No message
q!();
// Identifier
let name = "SteadBytes";
q!(name);
// Returns expression values
let greeting = q!(hello(name));
q!(greeting);
q!(Some(42));
}
Running the above using cargo run --example simple writes the following to
$TMP_DIR/q (/tmp/q on Linux):
[19:13:49 ThreadId(1) examples/simple.rs simple::main:11]
>
> name = "SteadBytes"
[19:13:49 ThreadId(1) examples/simple.rs simple::hello:5]
> name = "SteadBytes"
[19:13:49 ThreadId(1) examples/simple.rs simple::main:18]
> hello(name) = "Hello, SteadBytes!"
> greeting = "Hello, SteadBytes!"
> Some(42) = Some(42)
A header line is logged at a regular (configurable) interval or if the calling function or module has changed.
Expression values are returned by q invocations.
q-debug and not q?q is unfortunately taken already (though I'm not
sure what it is...).