Mavryk_raw_protocol_alpha.Script_set
Functions to ease the manipulation of sets of values in Michelson.
A set in Michelson is a collection of type-homegeneous values along with the functions that operate on the structure (through a first-class module). In particular, the size
function runs in constant time.
val make :
(module Script_typed_ir.Boxed_set with type elt = 'elt) ->
'elt Script_typed_ir.set
val get :
'elt Script_typed_ir.set ->
(module Script_typed_ir.Boxed_set
with type elt = 'elt)
val empty : 'a Script_typed_ir.comparable_ty -> 'a Script_typed_ir.set
empty cmp_ty
creates a set module where elements have size Gas_comparable_input_size.size_of_comparable_value cmp_ty
and are compared with Script_comparable.compare_comparable cmp_ty
(used for sorting values, which ensures a reasonable complexity of the set functions). The function returns an empty set packaged as a first-class set module.
val fold : ('elt -> 'acc -> 'acc) -> 'elt Script_typed_ir.set -> 'acc -> 'acc
val update : 'a -> bool -> 'a Script_typed_ir.set -> 'a Script_typed_ir.set
update v true set
adds v
to set
, and update v false set
removes v
from set
.
val mem : 'elt -> 'elt Script_typed_ir.set -> bool
val size : 'elt Script_typed_ir.set -> Script_int.n Script_int.num
size set
runs in constant time.