1 个不稳定版本
0.1.1 | 2019年8月20日 |
---|---|
0.1.0 |
|
#2501 在 Rust 模式
14KB
try_wrap_ok
此软件包提供了一个类似于旧 try!
宏或 ?
的宏,但它在额外的 Ok 中包装错误。
如果您想要使用 ?
来轻松返回无效输入错误,但又不能这样做,因为您有一个额外的 Result
层级来处理不同类型的内部错误,那么这很有用。
此宏允许您这样做
fn foo(input: Input) -> Result<Result<FinalOutput, InvalidInputError>, DatabaseError> {
let validated_input: ValidatedInput = try_wrap_ok!(validate_input_with_database(input)?);
Ok(Ok(do_stuff_with_validated_input(validated_input)?))
}
fn validate_input_with_database(input: Input) -> Result<Result<ValidatedInput, InvalidInputError>, DatabaseError>;
lib.rs
:
此软件包提供了一个类似于旧 try!
宏或 ?
的宏,但它在额外的 Ok 中包装错误。
如果您想要使用 ?
来轻松返回无效输入错误,但又不能这样做,因为您有一个额外的 Result
层级来处理不同类型的内部错误,那么这很有用。
此宏允许您这样做
fn foo(input: Input) -> Result<Result<FinalOutput, InvalidInputError>, DatabaseError> {
let validated_input: ValidatedInput = try_wrap_ok!(validate_input_with_database(input)?);
Ok(Ok(do_stuff_with_validated_input(validated_input)?))
}
fn validate_input_with_database(input: Input) -> Result<Result<ValidatedInput, InvalidInputError>, DatabaseError>;