2 个不稳定版本

0.1.0 2020 年 1 月 26 日
0.0.0 2020 年 1 月 25 日

#2688 in Rust 模式

MIT 许可证

6KB

断言器

Build Status

针对 Rust 的新测试工具

功能

  • 支持稳定版本

  • unwrap!

您可以轻松地展开嵌套值。

use asserter::*;

enum Complex {
    Normal(String),
    Boxed(Box<Complex>),
}

#[asserter]
fn main() {
    let foo = Complex::Boxed(Box::new(Complex::Normal(String::from("foo"))));

    unwrap!(foo as Complex::Boxed(unbox!(Complex::Normal(s))));
    assert_eq!(s, "foo");   
}

此外,您还可以在 unwrap! 中使用 box 模式。

use asserter::*;

enum Complex {
    Normal(String),
    Boxed(Box<Complex>),
}

#[asserter]
fn main() {
    let foo = Complex::Boxed(Box::new(Complex::Normal(String::from("foo"))));

    unwrap!(foo as Complex::Boxed(box Complex::Normal(s)));
    assert_eq!(s, "foo");   
}
  • rustfmt 兼容

有一些语法糖允许与 rustfmt 一起使用。

用法

Cargo.tml:

[dependencies]
asserter = "0.1"
#[asserter]
fn main() {
    let foo = Complex::Boxed(Box::new(Complex::Normal(String::from("foo"))));

    unwrap!(foo as Complex::Boxed(box Complex::Normal(s)));
    assert_eq!(s, "foo");   
}

依赖项

~1.5MB
~33K SLoC