#assert #cleanup #assert-eq #failure #statement #closures #assert-ne

cleanass

Enhances assert, assert_eq and assert_ne with cleanup statement which runs on failure

1 unstable release

new 0.0.1 Nov 28, 2024

#21 in #assert-eq

MIT license

92KB
150 lines

cleanass

Crates.io Docs.rs

Enhances assert, assert_eq and assert_ne with cleanup statement which runs on failure.

Usage

Import use cleanass::{assert_eq, assert_ne, assert}; and use them as you would the built-in versions or pass in a closure which runs whenever an assertion fails.

use cleanass::assert_ne;

pub fn main() {
    // If assert succeeds nothing is printed since cleanup function does not run
    {
        let a = 1;
        let b = 2;
        assert_ne!(a, b, eprintln!("Cleanup: {} != {} succeeded", a, b));
    }
    // If assert fails the cleanup function runs and prints the message
    {
        let a = 1;
        let b = 1;
        assert_ne!(
            a, b,
            eprintln!("Cleanup: {} != {} failed", a, b),
            "Should not be equal"
        );
    }
}

Features

strict

  • disables versions of the assertions that don't require a closure ensuring that you don't accidentally forget to add a cleanup function
  • is on by default

LICENSE

MIT

No runtime deps

Features