X-Git-Url: http://git.annexia.org/?p=whenjobs.git;a=blobdiff_plain;f=lib%2Fwhenutils.mli;h=ef3f5918e1451cc61c5b7c8f3ae8d99fe4e3aa38;hp=61cd4f8fad50a470b0340fe44c7c1a4b18ae13e1;hb=efddbf83a5287c5d668cc04a0c7328cf5ca3e648;hpb=adc311d69459345a9ce23864d7aa41a7a6b97b42 diff --git a/lib/whenutils.mli b/lib/whenutils.mli index 61cd4f8..ef3f591 100644 --- a/lib/whenutils.mli +++ b/lib/whenutils.mli @@ -84,6 +84,39 @@ module IntMap : sig end (** A map from int to any type. *) +module BigIntMap : sig + type key = Big_int.big_int + type 'a t + val empty : 'a t + val is_empty : 'a t -> bool + val mem : key -> 'a t -> bool + val add : key -> 'a -> 'a t -> 'a t + (*val singleton : key -> 'a -> 'a t*) + val remove : key -> 'a t -> 'a t + (*val merge : + (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t*) + val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int + val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool + val iter : (key -> 'a -> unit) -> 'a t -> unit + val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b + (*val for_all : (key -> 'a -> bool) -> 'a t -> bool + val exists : (key -> 'a -> bool) -> 'a t -> bool + val filter : (key -> 'a -> bool) -> 'a t -> 'a t + val partition : (key -> 'a -> bool) -> 'a t -> 'a t * 'a t + val cardinal : 'a t -> int + val bindings : 'a t -> (key * 'a) list + val min_binding : 'a t -> key * 'a + val max_binding : 'a t -> key * 'a + val choose : 'a t -> key * 'a + val split : key -> 'a t -> 'a t * 'a option * 'a t*) + val find : key -> 'a t -> 'a + val map : ('a -> 'b) -> 'a t -> 'b t + val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t + val keys : 'a t -> key list + val values : 'a t -> 'a list +end +(** A map from big_int to any type. *) + module StringSet : sig type elt = String.t type t = Set.Make(String).t @@ -127,3 +160,10 @@ val filter_map : ('a -> 'b option) -> 'a list -> 'b list val string_of_time_t : ?localtime:bool -> float -> string (** Convert string to time in ISO format. If [~localtime] is true then it uses localtime, else UTC. *) + +val string_startswith : string -> string -> bool +(** [string_startswith str prefix] returns true iff [str] starts + with [prefix]. *) + +val string_endswith : string -> string -> bool +(** [string_endswith str suffix] returns true iff [str] ends with [suffix]. *)