X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=lib%2Fwhenutils.ml;h=79a653f7407f96b8ca7b4da43db9ac1fc2172282;hb=769737536e06be7b262612a8fac5f5708e0ed939;hp=583d0302e25d6812d42d16dfa3be917dc7f83a0e;hpb=adc311d69459345a9ce23864d7aa41a7a6b97b42;p=whenjobs.git diff --git a/lib/whenutils.ml b/lib/whenutils.ml index 583d030..79a653f 100644 --- a/lib/whenutils.ml +++ b/lib/whenutils.ml @@ -37,6 +37,12 @@ module IntMap = struct let values m = fold (fun _ v vs -> v :: vs) m [] end +module BigIntMap = struct + include Map.Make (struct type t = big_int let compare = compare_big_int end) + let keys m = fold (fun k _ ks -> k :: ks) m [] + let values m = fold (fun _ v vs -> v :: vs) m [] +end + module StringSet = Set.Make (String) let (//) = Filename.concat @@ -57,3 +63,13 @@ let string_of_time_t ?(localtime = false) t = (1900+tm.tm_year) (1+tm.tm_mon) tm.tm_mday tm.tm_hour tm.tm_min tm.tm_sec (if localtime then "" else " UTC") + +let string_startswith str prefix = + let len = String.length str in + let plen = String.length prefix in + len >= plen && String.sub str 0 plen = prefix + +let string_endswith str suffix = + let len = String.length str in + let slen = String.length suffix in + len >= slen && String.sub str (len-slen) slen = suffix