Module Mavryk_raw_protocol_alpha.Lazy_storage_diff

See Lazy_storage_kind for an introduction on lazy storage.

This module defines operations on lazy storage types and diffs.

type ('id, 'alloc) init =
  1. | Existing
  2. | Copy of {
    1. src : 'id;
    }
  3. | Alloc of 'alloc
type ('id, 'alloc, 'updates) diff =
  1. | Remove
  2. | Update of {
    1. init : ('id, 'alloc) init;
    2. updates : 'updates;
    }
type diffs_item = private
  1. | Item : ('i, 'a, 'u) Lazy_storage_kind.t * 'i * ('i, 'a, 'u) diff -> diffs_item
val make : ('i, 'a, 'u) Lazy_storage_kind.t -> 'i -> ('i, 'a, 'u) diff -> diffs_item
type diffs = diffs_item list
val diffs_in_memory_size : diffs -> Cache_memory_helpers.nodes_and_size

The returned Z.t is the size added by the application of the diffs.

Initializes the storage for all lazy storage kind. This is useful for genesis only. Protocol updates need to initialize new lazy storage kinds.