Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.65 KB | None | 0 0
  1. enum Error {
  2. UserError,
  3. TokenError,
  4. }
  5.  
  6. enum Status {
  7. Ok,
  8. UnknownUser,
  9. InternalServerError,
  10. }
  11.  
  12. fn bar() {
  13. let _status = match foo() {
  14. Ok(_) => Status::Ok,
  15. Err(Error::UserError) => Status::UnknownUser,
  16. Err(_) => Status::InternalServerError,
  17. };
  18. // ...
  19. }
  20.  
  21. fn foo() -> Result<(), Error> {
  22. let user = get_user().map_err(|_| Error::UserError)?;
  23. let _token = get_token(&user).map_err(|_| Error::TokenError)?;
  24. // ...
  25. Ok(())
  26. }
  27.  
  28. struct ErrorX;
  29.  
  30. fn get_user() -> Result<String, ErrorX> {
  31. Ok("Jane".into())
  32. }
  33.  
  34. struct ErrorY;
  35. struct Token;
  36.  
  37. fn get_token(user: &str) -> Result<Token, ErrorY> {
  38. Ok(Token)
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement