package ocsipersist

  1. Overview
  2. Docs

The variable store allows for the persistent storage of individual variables. Relies on Stdlib.Marshal for (de)serialisation, which entails the same limitations as for the Polymorphic frontend. If this is an issue you can rely on Functorial frontend instead (see TABLE.Variable).

type 'a t

Type of persistent data

type store

Data are divided into stores. Create one store for your project, where you will save all your data.

val open_store : string -> store Lwt.t

Open a store (and create it if it does not exist)

val make_persistent : store:store -> name:string -> default:'a -> 'a t Lwt.t

make_persistent store name default find a persistent value named name in store store from database, or create it with the default value default if it does not exist.

val make_persistent_lazy : store:store -> name:string -> default:(unit -> 'a) -> 'a t Lwt.t

Same as make_persistent but the default value is evaluated only if needed

val make_persistent_lazy_lwt : store:store -> name:string -> default:(unit -> 'a Lwt.t) -> 'a t Lwt.t

Lwt version of make_persistent_lazy.

val get : 'a t -> 'a Lwt.t

get pv gives the value of pv

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

set pv value sets a persistent value pv to value