File tree Expand file tree Collapse file tree 1 file changed +26
-0
lines changed
Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Original file line number Diff line number Diff line change @@ -654,6 +654,32 @@ impl<T> Option<T> {
654654 !self . is_some ( )
655655 }
656656
657+ //github.com/ Returns `true` if the option is a [`None`] or the value inside of it matches a predicate.
658+ //github.com/
659+ //github.com/ # Examples
660+ //github.com/
661+ //github.com/ ```
662+ //github.com/ #![feature(is_none_or)]
663+ //github.com/
664+ //github.com/ let x: Option<u32> = Some(2);
665+ //github.com/ assert_eq!(x.is_none_or(|x| x > 1), true);
666+ //github.com/
667+ //github.com/ let x: Option<u32> = Some(0);
668+ //github.com/ assert_eq!(x.is_none_or(|x| x > 1), false);
669+ //github.com/
670+ //github.com/ let x: Option<u32> = None;
671+ //github.com/ assert_eq!(x.is_none_or(|x| x > 1), true);
672+ //github.com/ ```
673+ #[ must_use]
674+ #[ inline]
675+ #[ unstable( feature = "is_none_or" , issue = "none" ) ]
676+ pub fn is_none_or ( self , f : impl FnOnce ( T ) -> bool ) -> bool {
677+ match self {
678+ None => true ,
679+ Some ( x) => f ( x) ,
680+ }
681+ }
682+
657683 //github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com//
658684 // Adapter for working with references
659685 //github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com///github.com//
You can’t perform that action at this time.
0 commit comments