Types and exceptions
Type of bigstrings
include Ppx_sexp_conv_lib.Sexpable.S with type t := t
val t_of_sexp : Sexplib0.Sexp.t -> t
val sexp_of_t : t -> Sexplib0.Sexp.t
type t_frozen = t
Type of bigstrings which support hashing. Note that mutation invalidates previous hashes.
val hash_fold_t_frozen : Base.Hash.state -> t_frozen -> Base.Hash.state
val hash_t_frozen : t_frozen -> Base.Hash.hash_value
val sexp_of_t_frozen : t_frozen -> Ppx_sexp_conv_lib.Sexp.t
val t_frozen_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> t_frozen
include Base.Equal.S with type t := t
val equal : t Base.Equal.equal
Creation and string conversion
create length
- parameter max_mem_waiting_gc
default = 256 M in OCaml <= 3.12, 1 G otherwise. As the total allocation of calls to
create
approachmax_mem_waiting_gc_in_bytes
, the pressure in the garbage collector to be more agressive will increase.
- returns
a new bigstring having
length
. Content is undefined.
init n ~f
creates a bigstring t
of length n
, with t.{i} = f i
.
val of_string : ?pos:Base.int -> ?len:Base.int -> Base.string -> t
of_string ?pos ?len str
- returns
a new bigstring that is equivalent to the substring of length
len
instr
starting at positionpos
.
- parameter pos
default = 0
- parameter len
default =
String.length str - pos
val of_bytes : ?pos:Base.int -> ?len:Base.int -> Base.bytes -> t
of_bytes ?pos ?len str
- returns
a new bigstring that is equivalent to the subbytes of length
len
instr
starting at positionpos
.
- parameter pos
default = 0
- parameter len
default =
Bytes.length str - pos
val to_string : ?pos:Base.int -> ?len:Base.int -> t -> Base.string
to_string ?pos ?len bstr
- returns
a new string that is equivalent to the substring of length
len
inbstr
starting at positionpos
.
- parameter pos
default = 0
- parameter len
default =
length bstr - pos
- raises Invalid_argument
if the string would exceed runtime limits.
val to_bytes : ?pos:Base.int -> ?len:Base.int -> t -> Base.bytes
to_bytes ?pos ?len bstr
- returns
a new byte sequence that is equivalent to the substring of length
len
inbstr
starting at positionpos
.
- parameter pos
default = 0
- parameter len
default =
length bstr - pos
- raises Invalid_argument
if the bytes would exceed runtime limits.
concat ?sep list
returns the concatenation of list
with sep
in between each.
Checking
val check_args : loc:Base.string -> pos:Base.int -> len:Base.int -> t -> Base.unit
check_args ~loc ~pos ~len bstr
checks the position and length arguments pos
and len
for bigstrings bstr
.
- raises
Invalid_argument if these arguments are illegal for the given bigstring using
loc
to indicate the calling context.
val get_opt_len : t -> pos:Base.int -> Base.int Base.option -> Base.int
get_opt_len bstr ~pos opt_len
- returns
the length of a subbigstring in
bstr
starting at positionpos
and given optional lengthopt_len
. This function does not check the validity of its arguments. Usecheck_args
for that purpose.
Accessors
Blitting
include Base.Blit.S with type t := t
module To_string : sig ... end
module From_string : Base.Blit.S_distinct with type src := Base.string with type dst := t
module To_bytes : Base.Blit.S_distinct with type src := t with type dst := Base.bytes
module From_bytes : Base.Blit.S_distinct with type src := Base.bytes with type dst := t
memset t ~pos ~len c
fills t
with c
within the range [pos, pos + len)
.
memcmp t1 ~pos1 t2 ~pos2 ~len
is like compare t1 t2
except performs the comparison on the subregions of t1
and t2
defined by pos1
, pos2
, and len
.
Search
find ?pos ?len char t
returns Some i
for the smallest i >= pos
such that t.{i} = char
, or None
if there is no such i
.
- parameter pos
default = 0
- parameter len
default =
length bstr - pos
Same as find
, but does no bounds checking, and returns a negative value instead of None
if char
is not found.
Accessors for parsing binary values, analogous to Binary_packing
16-bit methods
32-bit methods
64-bit signed values
64-bit unsigned values
32-bit methods with full precision
val get_int32_t_le : t -> pos:Base.int -> Base.Int32.t
val get_int32_t_be : t -> pos:Base.int -> Base.Int32.t
val set_int32_t_le : t -> pos:Base.int -> Base.Int32.t -> Base.unit
val set_int32_t_be : t -> pos:Base.int -> Base.Int32.t -> Base.unit
val unsafe_get_int32_t_le : t -> pos:Base.int -> Base.Int32.t
val unsafe_get_int32_t_be : t -> pos:Base.int -> Base.Int32.t
val unsafe_set_int32_t_le : t -> pos:Base.int -> Base.Int32.t -> Base.unit
val unsafe_set_int32_t_be : t -> pos:Base.int -> Base.Int32.t -> Base.unit
64-bit methods with full precision
val get_int64_t_le : t -> pos:Base.int -> Base.Int64.t
val get_int64_t_be : t -> pos:Base.int -> Base.Int64.t
val set_int64_t_le : t -> pos:Base.int -> Base.Int64.t -> Base.unit
val set_int64_t_be : t -> pos:Base.int -> Base.Int64.t -> Base.unit
val unsafe_get_int64_t_le : t -> pos:Base.int -> Base.Int64.t
val unsafe_get_int64_t_be : t -> pos:Base.int -> Base.Int64.t
val unsafe_set_int64_t_le : t -> pos:Base.int -> Base.Int64.t -> Base.unit
val unsafe_set_int64_t_be : t -> pos:Base.int -> Base.Int64.t -> Base.unit
module Private : sig ... end