package octez-proto-libs

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Make.FallbackArray

This module implements arrays equipped with accessors that cannot raise exceptions. Reading out of the bounds of the arrays return a fallback value fixed at array construction time, writing out of the bounds of the arrays is ignored.

type 'a t

The type for array containing values of type 'a.

val make : int -> 'a -> 'a t

make len v builds an array a initialized len cells with v. The value v is the fallback value for a.

val of_list : fallback:'b -> proj:('a -> 'b) -> 'a list -> 'b t

of_list ~fallback ~proj l builds a fallback array a of length List.length l where each cell i is initialized by proj (List.nth l i) and the fallback value is fallback.

val fallback : 'a t -> 'a

fallback a returns the fallback value for a.

val length : 'a t -> int

length a returns the length of a.

val get : 'a t -> int -> 'a

get a idx returns the contents of the cell of index idx in a. If idx < 0 or idx >= length a, get a idx = fallback a.

val set : 'a t -> int -> 'a -> unit

set a idx value updates the cell of index idx with value. If idx < 0 or idx >= length a, a is unchanged.

val iter : ('a -> unit) -> 'a t -> unit

iter f a iterates f over the cells of a from the cell indexed 0 to the cell indexed length a - 1.

val map : ('a -> 'b) -> 'a t -> 'b t

map f a computes a new array obtained by applying f to each cell contents of a. Notice that the fallback value of the new array is f (fallback a).

val fold : ('b -> 'a -> 'b) -> 'a t -> 'b -> 'b

fold f a init traverses a from the cell indexed 0 to the cell indexed length a - 1 and transforms accu into f accu x where x is the content of the cell under focus. accu is init on the first iteration.

val fold_map : ('b -> 'a -> 'b * 'c) -> 'a t -> 'b -> 'c -> 'b * 'c t

fold_map f a init fallback traverses a from the cell indexed 0 to the cell indexed length a - 1 and transforms accu into fst (f accu x) where x is the content of the cell under focus. accu is init on the first iteration. The function also returns a fresh array containing snd (f accu x) for each x. fallback is required to initialize a fresh array before it can be filled.

OCaml

Innovation. Community. Security.