Mavryk_lazy_containers.Chunked_byte_vector
module Chunk : sig ... end
val create :
?origin:Mavryk_tree_encoding.wrapped_tree ->
?get_chunk:(int64 -> Chunk.t Lwt.t) ->
int64 ->
t
create length
creates a chunked byte vector that has capacity for length
bytes.
Note: This function is expected to be use only by the tree-encoding library. To create a brand new chunked byte vector, use allocate
.
val origin : t -> Mavryk_tree_encoding.wrapped_tree option
origin vec
returns the tree of origin of the vector, if it exists.
Note: The sole consumer of this function is expected to be the tree-encoding library.
val allocate : int64 -> t
allocate len
creates a new zeroed chunked byte vector.
Note: This function may be dangerous to use in a tick if len
is too large.
val of_string : string -> t
of_string str
creates a chunked byte vector from the given str
.
val of_bytes : bytes -> t
of_bytes bytes
creates a chunked byte vector from the given bytes
. The underlying memory is effectively copied - further modifications to bytes
are not reflected in the chunked byte vector. Use this over of_string
when turning your bytes
into a string
would be potentially expensive.
val to_string : t -> string Lwt.t
to_string vector
creates a string from the given vector
.
val to_bytes : t -> bytes Lwt.t
to_bytes vector
creates a bytes from the given vector
.
val grow : t -> int64 -> unit
grow vector length_delta
increases the byte vector length by length_delta
and initializes the memory with empty chunks.
Note: This function may be dangerous to use in a tick if length_delta
is too large.
val length : t -> int64
length vector
returns the length of vector
in bytes.
val load_byte : t -> int64 -> int Lwt.t
load_byte vector offset
read the byte at offset
.
val load_bytes : t -> int64 -> int64 -> bytes Lwt.t
load_bytes vector offset num_bytes
loads the bytes at offset
to offset + num_bytes
.
Note: This function may be dangerous to use in a tick if num_bytes
is too large.
val store_byte : t -> int64 -> int -> unit Lwt.t
store_byte vector offset byte
set the byte at offset
to byte
.
val store_bytes : t -> int64 -> bytes -> unit Lwt.t
store_bytes vector offset bytes
set the bytes from offset
to the given bytes
.
loaded_chunks vector
returns the chunks of vector
that have been cached in-memory since vector
has been created, either by reading its contents, or by modifying it.
val encoding : t Mavryk_tree_encoding.t
encoding
is a Mavryk_tree_encoding
for t
.