package b0

  1. Overview
  2. Docs
Software construction and deployment kit

Install

dune-project
 Dependency

Authors

Maintainers

Sources

b0-0.0.6.tbz
sha512=e9aa779e66c08fc763019f16d4706f465d16c05d6400b58fbd0313317ef33ddea51952e2b058db28e65f7ddb7012f328c8bf02d8f1da17bb543348541a2587f0

doc/b0.file/B0_store/index.html

Module B0_storeSource

Lazy immutable stores.

These stores provide access to immutable, lazily determined, typed key-value bindings.

The value of a key in a store is defined either:

Once determined the value of a key in the store never changes.

Stores

Sourcetype 'a key

The type for keys binding values of type 'a.

Sourcetype binding =
  1. | B : 'a key * 'a B0_std.Fut.t -> binding

The type for store bindings. A key and its value.

Sourcetype t

The type for stores.

Sourceval make : B0_memo.t -> dir:B0_std.Fpath.t -> binding list -> t

make memo ~dir bs is a store with predefined bindings bs. If a key is mentioned more than once in bs the last binding takes over. The store uses memo to determine other keys as needed. dir is a scratch directory used by key determination functions to write memoized file outputs.

Sourceval memo : t -> B0_memo.t

memo s is s's memo as given on make.

Sourceval dir : t -> B0_std.Fpath.t

dir s is the scratch directory of s. Key determination functions using this directory to write files should do so using nice file name prefixes (e.g. lowercased module or lib names) to avoid name clashes.

Sourceval key : ?mark:string -> (t -> B0_memo.t -> 'a B0_std.Fut.t) -> 'a key

key ~mark det is a new key whose value is determined on access by the future:

det s (Memo.with_mark mark (B0_store.memo s))

mark defaults to "".

Sourceval get : t -> 'a key -> 'a B0_std.Fut.t

get s k is a future that dermines with the value of k in s.

On This Page
  1. Stores