2 unstable releases
| 0.2.0 | Sep 4, 2019 |
|---|---|
| 0.1.0 | Sep 4, 2019 |
#8 in #wrapping
1,517 downloads per month
14KB
This crate provides a macro similar to the old try! macro, or to the ?, except it wraps
the error in something else.
This is useful if you want to use a ? for easily returning say, invalid input errors,
but you can't do so because you have an additional Result level for handling internal errors of a different nature.
This macro allows you to do so:
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>;
try_or_wrap
This crate provides a macro similar to the old try! macro, or to the ?, except it wraps
the error in something else.
This is useful if you want to use a ? for easily returning say, invalid input errors,
but you can't do so because you have an additional Result level for handling internal errors of a different nature.
This macro allows you to do so:
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>;