Module Store_v2.Inboxes

Storage for persisting inboxes.

include Mavryk_layer2_store.Indexed_store.INDEXED_FILE with type key := Mavkit_smart_rollup.Inbox.Hash.t with type value := Mavkit_smart_rollup.Inbox.t with type header := unit
type +'a t

The type of indexed file store.

Returns true if the key has a value associated in the store.

val header : [> `Read ] t -> Mavkit_smart_rollup.Inbox.Hash.t -> unit option Mavryk_base.TzPervasives.tzresult Lwt.t

Returns the header for a key if it exists in the store.

Read a full value and header from the indexed file store.

val load : path:string -> index_buffer_size:int -> cache_size:int -> 'a Mavryk_layer2_store.Store_sigs.mode -> 'a t Mavryk_base.TzPervasives.tzresult Lwt.t

Loads a new or existing indexed file store in the directory path.

val close : _ t -> unit Mavryk_base.TzPervasives.tzresult Lwt.t

Close the index and the file. One must call load again to read or write data in the store.

val readonly : [> `Read ] t -> [ `Read ] t

readonly t returns a read only version of the store t.

gc ?async t filter garbage collects data stored in the store t by keeping only elements that satisfy the predicate filter. This call runs the GC asynchronously unless async is false. If a GC is already ongoing this new request is ignored and this call is a no-op.

val wait_gc_completion : 'a t -> unit Lwt.t

wait_gc_completion t returns a blocking thread if a GC run is currently ongoing.

val is_gc_finished : 'a t -> bool

is_gc_finished t returns true if there is no GC running.

val append : ?flush:bool -> [> `Write ] t -> key:Mavkit_smart_rollup.Inbox.Hash.t -> value:Mavkit_smart_rollup.Inbox.t -> unit Mavryk_base.TzPervasives.tzresult Lwt.t

Append a new binding to the indexed file store.