1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2016 年 10 月 10 日

#49 in #guard

MIT/Apache

7KB
118

Bulwark

Bulwark 是 "作用域守卫" 的实现,是一些在当前作用域退出时执行的代码片段。

  • scope_exit! { ... } 在周围作用域退出时执行代码块。
  • scope_success! { ... } 仅在周围作用域在没有引发恐慌的情况下退出时执行代码块。
  • scope_failure! { ... } 仅在周围作用域由于恐慌而退出时执行代码块。

Cargo.toml

[dependencies]
bulwark = "0.1.0"

示例

代码:

#[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.");
}

输出:

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!

许可证

许可协议为以下两者之一

贡献

除非您明确声明,否则您提交给工作内容的任何有意贡献都应按照上述协议双重许可,不附加任何额外条款或条件。

依赖项

~7KB