👥 Rust Monads
(not an official identifier, used for simplification)
Types
Shared Functions
Note: monad
/ Monad
stands for Option or Result
Unwrap
monad.unwrap_or(fallback)
→ returns success value, fallback if it doesn’t existmonad.unwrap_or_else(fallback_fn)
→ returns success value, calls fallback fn / closure if it doesn’t existmonad.unwrap()
→ returns success value, panic if it doesn’t existmonad.expect(message)
→ like.unwrap()
, also printsmessage
Map
monad.map(self, f: F)
→ Maps aResult<T, E>
toResult<U, E>
by applying a function/closureop
to it, fail value untouchedmonad.map_err(self, op: F)
→ likemap()
, but for Emonad.map_or(self, default,f: F)
→ Maps aResult<T, E>
toResult<U, E>
by applying a function/closuref
to it, or returns default if E existsmonad.map_or_else(self, default, op: F)
→ lazy call ofmap_or
, use if passing function call as default
References
monad.as_ref()
→ Converts&Monad<T>
toMonad<&T>
monad.as_mut()
→ Converts&mut Monad<T>
toMonad<&mut T>