Topkg.String
Strings.
is_prefix ~affix s
is true
iff affix.[i] = s.[i]
for all indices i
of affix
.
is_suffix ~affix s
is true iff affix.[n - i] = s.[m - i]
for all indices i
of affix
with n = String.length affix - 1
and m =
String.length s - 1
.
for_all p s
is true
iff for all indices i
of s
, p s.[i]
= true
.
exists p s
is true
iff there exists an index i
of s
with p s.[i] = true
.
with_index_range ~first ~last s
are the consecutive bytes of s
whose indices exist in the range [first
;last
].
first
defaults to 0
and last to String.length s - 1
.
Note that both first
and last
can be any integer. If first > last
the interval is empty and the empty string is returned.
cut ~sep s
is either the pair Some (l,r)
of the two (possibly empty) substrings of s
that are delimited by the first match of the separator character sep
or None
if sep
can't be matched in s
. Matching starts from the beginning of s
(rev
is false
, default) or the end (rev
is true
).
The invariant l ^ (String.make 1 sep) ^ r = s
holds.
cuts ~sep s
is the list of all substring of s
that are delimited by matches of sep
. Empty substrings are ommited in the list if empty
is falsee
(defaults to true
). The invariant String.concat (String.make 1 sep) (split ~sep s) = s
holds.
parse_version
parses version strings of the form:
"[v]major.minor[.patchlevel][(+|~)additional-info]"
into (major, minor, patch, (+|~)additional_info)
tuples.