X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Futils.mli;h=8edfaae7ed113e22ed2c775da491a1aa6691f43d;hb=881b2e9b7bad0da8f44418e9e6558710db5ce690;hp=423847a882bfcd5662ce2afe2681919842121395;hpb=ad88d061677bc17e820eac0f949723c6f3d4f6e4;p=goals.git diff --git a/src/utils.mli b/src/utils.mli index 423847a..8edfaae 100644 --- a/src/utils.mli +++ b/src/utils.mli @@ -19,3 +19,42 @@ val failwithf : ('a, unit, string, 'b) format4 -> 'a (** Like [failwith] but supports printf-like arguments. *) + +val (//) : string -> string -> string +(** The {!Filename.concat} function. *) + +val is_directory : string -> bool +(** Return true iff parameter is a directory. *) + +val filter_map : ('a -> 'b option) -> 'a list -> 'b list +(** [filter_map f l] applies [f] to every element of [l], filters + out the [None] elements and returns the list of the arguments of + the [Some] elements. *) + +val string_find : string -> string -> int +(** [string_find str sub] finds the index of [sub] in [str]. If + not found, returns -1. *) + +val split : string -> string -> string * string +(** [split sep str] splits [str] at the first occurrence of the + separator [sep], returning the part before and the part after. + If separator is not found, return the whole string and an + empty string. *) + +val nsplit : ?max:int -> string -> string -> string list +(** [nsplit ?max sep str] splits [str] into multiple strings at each + separator [sep]. + + As with the Perl split function, you can give an optional + [?max] parameter to limit the number of strings returned. The + final element of the list will contain the remainder of the + input string. *) + +val isspace : char -> bool +val triml : ?test:(char -> bool) -> string -> string +val trimr : ?test:(char -> bool) -> string -> string +val trim : ?test:(char -> bool) -> string -> string +(** Trim strings at left, right or both. *) + +val absolute_path : string -> string +(** Convert any path into an absolute path. *)