Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fn main() {
- println!("{:?}", get_number());
- }
- enum InternalErrorType {
- DidNotProduceValidNumber
- }
- #[derive(Debug)]
- enum OutwardsErrorType {
- SomethingWentWrongPleaseRetry
- }
- fn get_number() -> Result<u32, OutwardsErrorType> {
- let number = internal_get_interesting_number()?;
- // do interesting operations
- Ok(number)
- }
- fn internal_get_interesting_number() -> Result<u32, InternalErrorType> {
- Err(InternalErrorType::DidNotProduceValidNumber)
- }
- impl From<InternalErrorType> for OutwardsErrorType {
- fn from(internal_error: InternalErrorType) -> OutwardsErrorType {
- match internal_error {
- InternalErrorType::DidNotProduceValidNumber => OutwardsErrorType::SomethingWentWrongPleaseRetry
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement