👥 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/closureopto 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/closurefto 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>