From 1a73ad7e299ce249dbce5f57990361a39702eaf3 Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Fri, 3 Jul 2015 16:52:20 +0200 Subject: [PATCH] add `CCString.mem` --- src/core/CCString.cppo.ml | 2 ++ src/core/CCString.mli | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/src/core/CCString.cppo.ml b/src/core/CCString.cppo.ml index da568710..03053161 100644 --- a/src/core/CCString.cppo.ml +++ b/src/core/CCString.cppo.ml @@ -102,6 +102,8 @@ let find ?(start=0) ~sub s = with Exit -> !i +let mem ?start ~sub s = find ?start ~sub s >= 0 + let rfind ~sub s = let n = String.length sub in let i = ref (String.length s - n) in diff --git a/src/core/CCString.mli b/src/core/CCString.mli index 416ead7d..521ab379 100644 --- a/src/core/CCString.mli +++ b/src/core/CCString.mli @@ -108,6 +108,15 @@ val find : ?start:int -> sub:string -> string -> int find ~sub:"a" "_a_a_a_" = 1 *) +val mem : ?start:int -> sub:string -> string -> bool +(** [mem ~sub s] is true iff [sub] is a substring of [s] + @since NEXT_RELEASE *) + +(*$T + mem ~sub:"bc" "abcd" + not (mem ~sub:"a b" "abcd") +*) + val rfind : sub:string -> string -> int (** Find [sub] in string from the right, returns its first index or [-1]. Should only be used with very small [sub]