Mavryk_lazy_containers.Immutable_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 used 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
.
grow vector length_delta
creates a new vector with the byte vector length increased 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.
store_byte vector offset byte
creates a new vector with the byte at offset
set to byte
.
store_bytes vector offset bytes
creates a new vector with the bytes from offset
set 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 writing to those chunks.
val encoding : t Mavryk_tree_encoding.t
encoding
is a Mavryk_tree_encoding
for t
.