Version 0.7.2.
[whenjobs.git] / lib / whenutils.ml
index 583d030..79a653f 100644 (file)
@@ -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