rassert

Simple macro for expressing Result-returning assertions and notifying, hard-error assertions (useful for functions where you can't propagate an error upstream so you want to log it).

Usage

```rust use rassert::{rassert, rassert_notify};

enum MyError { NotAnswerToLife, }

struct SomeOutput;

pub fn foo(input: usize) -> Result { rassert!(input == 42, MyError::NotAnswerToLife);

let output = ...;
Ok(output)

}

pub fn bar(input: usize) { rassert_notify!(1 != 1, error!("Well, that's not true."));

println!("Hi everyone"); // Never reached since the above rassert_notify fails and returns

} ```

Why

Because the alternative is rather ugly and does not obviously express that the expression is a precondition.

```rust enum MyError { NotAnswerToLife, }

struct SomeOutput;

pub fn foo(input: usize) -> Result { if input != 42 { return Err(MyError::NotAnswerToLife); }

let output = ...;
Ok(output)

} ```

I found myself just copy-pasting the same rassert macro over and over in my projects, so might as well put it on Cargo.