[−][src]Macro const_format::unwrap_or_else
This is supported on crate feature
fmt
only.Equivalent to Result::unwrap_or_else
but allows returning from the enclosing function.
Examples
Early return
#![feature(const_mut_refs)] use const_format::unwrap_or_else; const fn unwrap_square(number: Result<u32, u32>) -> u64 { let n = unwrap_or_else!(number, |n| return n as u64 ) as u64; n * n } assert_eq!(unwrap_square(Ok(10)), 100); assert_eq!(unwrap_square(Ok(30)), 900); assert_eq!(unwrap_square(Err(100)), 100);
As unwrap_or
#![feature(const_mut_refs)] use const_format::{AsciiStr, strwriter_as_str, unwrap_or_else}; const FOO: AsciiStr = unwrap_or_else!(AsciiStr::new(b"AB\x80"), |_| AsciiStr::empty() ); const BAR: AsciiStr = unwrap_or_else!(AsciiStr::new(b"bar"), |_| loop{} ); assert_eq!(FOO.as_str(), ""); assert_eq!(BAR.as_str(), "bar");