package tezos-lazy-containers

  1. Overview
  2. Docs
exception Bounds
exception SizeOverflow
module Chunk : sig ... end
type t

Chunked byte vector

val create : ?origin:Lazy_map.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 -> Lazy_map.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.

val loaded_chunks : t -> (int64 * Chunk.t) list

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.