package ocaml-base-compiler
Byte sequence operations.
get s n
returns the byte at index n
in argument s
.
Raise Invalid_argument
if n
is not a valid index in s
.
set s n c
modifies s
in place, replacing the byte at index n
with c
.
Raise Invalid_argument
if n
is not a valid index in s
.
create n
returns a new byte sequence of length n
. The sequence is uninitialized and contains arbitrary bytes.
Raise Invalid_argument
if n < 0
or n >
Sys.max_string_length
.
make n c
returns a new byte sequence of length n
, filled with the byte c
.
Raise Invalid_argument
if n < 0
or n >
Sys.max_string_length
.
init n f
returns a fresh byte sequence of length n
, with character i
initialized to the result of f i
.
Raise Invalid_argument
if n < 0
or n >
Sys.max_string_length
.
Return a new byte sequence that contains the same bytes as the given string.
Return a new string that contains the same bytes as the given byte sequence.
sub s start len
returns a new byte sequence of length len
, containing the subsequence of s
that starts at position start
and has length len
.
Raise Invalid_argument
if start
and len
do not designate a valid range of s
.
Same as sub
but return a string instead of a byte sequence.
extend s left right
returns a new byte sequence that contains the bytes of s
, with left
uninitialized bytes prepended and right
uninitialized bytes appended to it. If left
or right
is negative, then bytes are removed (instead of appended) from the corresponding side of s
.
Raise Invalid_argument
if the result length is negative or longer than Sys.max_string_length
bytes.
fill s start len c
modifies s
in place, replacing len
characters with c
, starting at start
.
Raise Invalid_argument
if start
and len
do not designate a valid range of s
.
blit src srcoff dst dstoff len
copies len
bytes from sequence src
, starting at index srcoff
, to sequence dst
, starting at index dstoff
. It works correctly even if src
and dst
are the same byte sequence, and the source and destination intervals overlap.
Raise Invalid_argument
if srcoff
and len
do not designate a valid range of src
, or if dstoff
and len
do not designate a valid range of dst
.
blit src srcoff dst dstoff len
copies len
bytes from string src
, starting at index srcoff
, to byte sequence dst
, starting at index dstoff
.
Raise Invalid_argument
if srcoff
and len
do not designate a valid range of src
, or if dstoff
and len
do not designate a valid range of dst
.
concat sep sl
concatenates the list of byte sequences sl
, inserting the separator byte sequence sep
between each, and returns the result as a new byte sequence.
cat s1 s2
concatenates s1
and s2
and returns the result as new byte sequence.
Raise Invalid_argument
if the result is longer than Sys.max_string_length
bytes.
iter f s
applies function f
in turn to all the bytes of s
. It is equivalent to f (get s 0); f (get s 1); ...; f (get s
(length s - 1)); ()
.
Same as Bytes.iter
, but the function is applied to the index of the byte as first argument and the byte itself as second argument.
map f s
applies function f
in turn to all the bytes of s
and stores the resulting bytes in a new sequence that is returned as the result.
mapi f s
calls f
with each character of s
and its index (in increasing index order) and stores the resulting bytes in a new sequence that is returned as the result.
Return a copy of the argument, without leading and trailing whitespace. The bytes regarded as whitespace are the ASCII characters ' '
, '\012'
, '\n'
, '\r'
, and '\t'
.
Return a copy of the argument, with special characters represented by escape sequences, following the lexical conventions of OCaml.
index s c
returns the index of the first occurrence of byte c
in s
.
Raise Not_found
if c
does not occur in s
.
index_opt s c
returns the index of the first occurrence of byte c
in s
or None
if c
does not occur in s
.
rindex s c
returns the index of the last occurrence of byte c
in s
.
Raise Not_found
if c
does not occur in s
.
rindex_opt s c
returns the index of the last occurrence of byte c
in s
or None
if c
does not occur in s
.
index_from s i c
returns the index of the first occurrence of byte c
in s
after position i
. Bytes.index s c
is equivalent to Bytes.index_from s 0 c
.
Raise Invalid_argument
if i
is not a valid position in s
. Raise Not_found
if c
does not occur in s
after position i
.
index_from _opts i c
returns the index of the first occurrence of byte c
in s
after position i
or None
if c
does not occur in s
after position i
. Bytes.index_opt s c
is equivalent to Bytes.index_from_opt s 0 c
.
Raise Invalid_argument
if i
is not a valid position in s
.
rindex_from s i c
returns the index of the last occurrence of byte c
in s
before position i+1
. rindex s c
is equivalent to rindex_from s (Bytes.length s - 1) c
.
Raise Invalid_argument
if i+1
is not a valid position in s
. Raise Not_found
if c
does not occur in s
before position i+1
.
rindex_from_opt s i c
returns the index of the last occurrence of byte c
in s
before position i+1
or None
if c
does not occur in s
before position i+1
. rindex_opt s c
is equivalent to rindex_from s (Bytes.length s - 1) c
.
Raise Invalid_argument
if i+1
is not a valid position in s
.
contains_from s start c
tests if byte c
appears in s
after position start
. contains s c
is equivalent to contains_from
s 0 c
.
Raise Invalid_argument
if start
is not a valid position in s
.
rcontains_from s stop c
tests if byte c
appears in s
before position stop+1
.
Raise Invalid_argument
if stop < 0
or stop+1
is not a valid position in s
.
Return a copy of the argument, with all lowercase letters translated to uppercase, including accented letters of the ISO Latin-1 (8859-1) character set.
Return a copy of the argument, with all uppercase letters translated to lowercase, including accented letters of the ISO Latin-1 (8859-1) character set.
Return a copy of the argument, with the first character set to uppercase, using the ISO Latin-1 (8859-1) character set..
Return a copy of the argument, with the first character set to lowercase, using the ISO Latin-1 (8859-1) character set..
Return a copy of the argument, with all lowercase letters translated to uppercase, using the US-ASCII character set.
Return a copy of the argument, with all uppercase letters translated to lowercase, using the US-ASCII character set.
Return a copy of the argument, with the first character set to uppercase, using the US-ASCII character set.
Return a copy of the argument, with the first character set to lowercase, using the US-ASCII character set.
The comparison function for byte sequences, with the same specification as Pervasives.compare
. Along with the type t
, this function compare
allows the module Bytes
to be passed as argument to the functors Set.Make
and Map.Make
.