Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.73 KB | None | 0 0
  1. fn main() {
  2. println!("{:?}", get_number());
  3. }
  4.  
  5. enum InternalErrorType {
  6. DidNotProduceValidNumber
  7. }
  8.  
  9. #[derive(Debug)]
  10. enum OutwardsErrorType {
  11. SomethingWentWrongPleaseRetry
  12. }
  13.  
  14. fn get_number() -> Result<u32, OutwardsErrorType> {
  15. let number = internal_get_interesting_number()?;
  16. // do interesting operations
  17. Ok(number)
  18. }
  19.  
  20. fn internal_get_interesting_number() -> Result<u32, InternalErrorType> {
  21. Err(InternalErrorType::DidNotProduceValidNumber)
  22. }
  23.  
  24. impl From<InternalErrorType> for OutwardsErrorType {
  25. fn from(internal_error: InternalErrorType) -> OutwardsErrorType {
  26. match internal_error {
  27. InternalErrorType::DidNotProduceValidNumber => OutwardsErrorType::SomethingWentWrongPleaseRetry
  28. }
  29. }
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement