blob: d354e031fbbc473075596b0267aeff55a1082c0d (
plain) (
tree)
|
|
(** a namespace that keeps its history: each binding it accepts is a
commit of [Protocols.Journal]. It answers [Directory] and [Registry]
as a plain namespace does, so a subsystem that only knows those
commits without knowing it. *)
(** a journal whose first commit, numbered 0, binds [bindings]. *)
val make : ?bindings:(string * Protocols.Handle.t) list -> unit -> Protocols.Handle.t
(** a journal whose first commit binds whatever [directory] binds now. *)
val adopt : Protocols.Handle.t -> (Protocols.Handle.t, Concepts.Condition.condition) result
(** a directory of [bindings] that, asked for a derived relation, hands
it out read against itself. *)
val snapshot : (string * Protocols.Handle.t) list -> Protocols.Handle.t
(** bind each name to its handle, or unbind it, whatever it was bound to
before: as one commit when [directory] is a journal, and one name at
a time when it is a plain namespace. *)
val rebind :
Protocols.Handle.t ->
(string * Protocols.Handle.t option) list ->
(unit, Concepts.Condition.condition) result
|