2个不稳定版本
0.2.0 | 2019年9月4日 |
---|---|
0.1.0 | 2019年9月4日 |
#1758 在 Rust模式
1,637 每月下载量
14KB
try_or_wrap
此crate提供了一个类似于旧 try!
宏或 ?
的宏,但它在其他东西中包装错误。
如果你想在内部错误处理中有一个额外的 Result
级别,而你想轻松返回无效输入错误,但又不能这样做,这很有用。
此宏允许你这样做
fn foo(input: Input) -> Result<Result<FinalOutput, InvalidInputError>, DatabaseError> {
let validated_input: ValidatedInput = try_or_wrap!(validate_input_with_database(input)?, Ok);
Ok(Ok(do_stuff_with_validated_input(validated_input)?))
}
fn validate_input_with_database(input: Input) -> Result<Result<ValidatedInput, InvalidInputError>, DatabaseError>;
lib.rs
:
此crate提供了一个类似于旧 try!
宏或 ?
的宏,但它在其他东西中包装错误。
如果你想在内部错误处理中有一个额外的 Result
级别,而你想轻松返回无效输入错误,但又不能这样做,这很有用。
此宏允许你这样做
fn foo(input: Input) -> Result<Result<FinalOutput, InvalidInputError>, DatabaseError> {
let validated_input: ValidatedInput = try_or_wrap!(validate_input_with_database(input)?, Ok);
Ok(Ok(do_stuff_with_validated_input(validated_input)?))
}
fn validate_input_with_database(input: Input) -> Result<Result<ValidatedInput, InvalidInputError>, DatabaseError>;