concordium-rust-smart-contracts
concordium-rust-smart-contracts copied to clipboard
In concordium-std, let user specify enum variant to be used as Default error
A user can now write the following code:
#[derive(Reject)]
enum MyReceiveError {
MyErrorVariant,
...
}
fn receive(...) -> Result<A, MyReceiveError> {
...
}
We would like to be able to call bail from receive functions that use custom error types. But for that, we need to provide a Default implementation for errors.
This task is to allow the user to write
#[derive(Reject)]
enum MyReceiveError {
#[default]
MyErrorVariant,
...
}
which will generate a Default implementation
impl Default for MyReceiveError {
fn default() -> Self {
MyReceiveError::MyErrorVariant
}
}