#diff #debugging #macro

diff-ba-rs

This library provides macros to get the difference of variables caused by a procedure

3 releases

0.1.2 Jul 25, 2022
0.1.1 Jul 24, 2022
0.1.0 Jul 24, 2022

#2098 in Rust patterns

MIT license

6KB
74 lines

diff-ba-rs

About

This library provides macros to get the difference of variables caused by a procedure.

Before and after the operation, use the pretty-print format by fmt::Debug to string them, and get their diff.

How to use

# Cargo.toml

[dependencies]
diff-ba-rs = "0.1.0"
use diff_ba_rs::prelude::*;

#[derive(Debug)]
struct ComplexVariable {
    // ...
}

let mut complex_variable = ComplexVariable {
    // ...
};
let _result =  diff_ba::dbg!(&complex_variable, {
    // OPERATION YOU WANT TO VERIFY
    // The diff_ba::dbg! macro returns the final expression in this block.
});

Very easy sample

use diff_ba_rs::prelude::*;
let mut a = 2;
let b =  diff_ba::dbg!(&a,
    a *= 2;
    a + 1
});
// prints:
// ```
// - 2
// + 4
// ```
assert_eq!(b, 5);

Note

For now, only the dbg! macro prints to standard output, but if there is demand for it from myself or others, I may implement a macro that returns a string or writes to a file.

License

diff-ba-rs is released under the MIT License

Dependencies

~56KB