2次发布
0.1.1 | 2021年4月4日 |
---|---|
0.1.0 | 2021年4月4日 |
#675 in 调试
12KB
151 行
postfix_assert
此代码包为具有常见断言属性的Rust标准库结构提供特质实现。这些断言与其它代码包不同,它们放弃了常见的assert!(x.is_none());
语句风格,转而使用内联、易读的x.assert_none();
。重要的是,这些assert_*
方法返回它们被调用的引用,这样你就可以将断言与你的代码交织在一起,而不是它们需要在单独的行上。
示例
fn computation_producing_some() -> Option<u32> {
Some(1)
}
fn computation_producing_none_from_some(x: Option<u32>) -> Option<u32> {
None
}
computation_producing_some()
.assert_some()
.and(computation_producing_none_from_some)
.assert_none()
代码包功能
- debug - 当启用时,这将导致所有断言变为
debug_assertions
,这些断言仅在调试模式下运行,而不在发布模式下运行。断言的开销通常很小,尤其是在编译器可以优化它们的情况下。当它们成本较高时,此功能仅在您尝试调试代码时启用断言。当此代码在发布模式下运行时,此库中的所有方法都会被优化掉。
其他断言代码包
我开始整理一个列表,其中包含以某种形式增强断言的代码包。我以两种方式使用这个列表:了解新代码包,这些代码包我可能想在代码中使用,以及我可以从这些其他代码包中借用有用断言的想法。这个列表总是不完整的,并且可能或可能没有每个代码包旁边的我的评论。
- https://crates.io/crates/assert
- https://crates.io/crates/spectral
- https://crates.io/crates/totems
- https://crates.io/crates/proc_static_assertions
- https://crates.io/crates/galvanic-assert
- https://crates.io/crates/chek
- https://crates.io/crates/all_asserts
- https://crates.io/crates/assert-panic
- https://crates.io/crates/assert2
- https://crates.io/crates/assert2
- https://crates.io/crates/const_fn_assert
- https://crates.io/crates/more-asserts
- https://crates.io/crates/power-assert
- https://crates.io/crates/assert_fs
- https://crates.io/crates/assert_matches
- https://crates.io/crates/claim
- https://crates.io/crates/assert-impl
- https://crates.io/crates/assert_cli
- https://crates.io/crates/rustspec_assertions
- https://crates.io/crates/similar-asserts
- https://crates.io/crates/sixarm_assert
- https://crates.io/crates/assert_ng
- https://crates.io/crates/assert_bound
- https://crates.io/crates/assert_ne
- https://crates.io/crates/static_assert
- https://crates.io/crates/assert_into
- https://crates.io/crates/assert-next
- https://crates.io/crates/assert_panic_free
- https://crates.io/crates/enum-unitary
许可协议:MIT