Bulwark

An implementation of "scope guards", little bits of code scheduled to run when the current scope exits.

Cargo.toml

toml [dependencies] bulwark = "0.1.0"

Example

Code:

```rust

[macro_use]

extern crate bulwark;

fn main() { scope_failure! { println!("The main thread has panicked!"); }

{ scope_exit! { println!("Leaving inner scope."); }

scope_success! {
  println!("Never printed, because of the below panic in this scope.");
}

println!("In the inner scope.");
panic!("Woman overboard!");

}

println!("End of main never reached, but the scope_failure still runs."); } ```

Output:

In the inner scope. thread 'main' panicked at 'Woman overboard!', src/main.rs:19 note: Run with `RUST_BACKTRACE=1` for a backtrace. Leaving inner scope. The main thread has panicked!

License

Licensed under either of * Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0) * MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.