Macro konst::try_opt [−][src]
macro_rules! try_opt { ($opt : expr $(,) *) => { ... }; }
Expand description
?
-like macro for Option
s.
Example
use konst::try_opt; const SOME: Option<u8> = sum_u8s(&[3, 5, 8, 13]); assert_eq!(SOME, Some(29)); const NONE: Option<u8> = sum_u8s(&[3, 5, 8, 13, 240]); assert_eq!(NONE, None); const fn sum_u8s(mut nums: &[u8]) -> Option<u8> { let mut sum = 0_u8; while let [first, rem @ ..] = nums { nums = rem; sum = try_opt!(sum.checked_add(*first)); } Some(sum) }