diff --git a/src/core/CCOpt.ml b/src/core/CCOpt.ml index 4753315d..84fa5ffb 100644 --- a/src/core/CCOpt.ml +++ b/src/core/CCOpt.ml @@ -71,6 +71,14 @@ let filter p = function | Some x as o when p x -> o | o -> o +let exists p = function + | None -> false + | Some x -> p x + +let for_all p = function + | None -> true + | Some x -> p x + let iter f o = match o with | None -> () | Some x -> f x diff --git a/src/core/CCOpt.mli b/src/core/CCOpt.mli index 2bdbee8e..af6573d8 100644 --- a/src/core/CCOpt.mli +++ b/src/core/CCOpt.mli @@ -50,6 +50,12 @@ val filter : ('a -> bool) -> 'a t -> 'a t (** Filter on 0 or 1 element @since 0.5 *) +val exists : ('a -> bool) -> 'a t -> bool +(** @since NEXT_RELEASE *) + +val for_all : ('a -> bool) -> 'a t -> bool +(** @since NEXT_RELEASE *) + val get : 'a -> 'a t -> 'a (** [get default x] unwraps [x], but if [x = None] it returns [default] instead. @since 0.4.1 *)