aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/Journal.mli
diff options
context:
space:
mode:
authorMarcos Magueta <maguetamarcos@gmail.com>2026-10-05 22:40:22 -0300
committerMarcos Magueta <maguetamarcos@gmail.com>2026-10-05 22:40:22 -0300
commitcfc641a9bb97c94e5993f895a8bcdf24214adc83 (patch)
treec793f068df0ff588565b5819b27018b616b87109 /lib/kernel/Journal.mli
parent32e663591a84d095723e62ef934a0bc6e1470b52 (diff)
downloadRNT-cfc641a9bb97c94e5993f895a8bcdf24214adc83.tar.gz
RNT-cfc641a9bb97c94e5993f895a8bcdf24214adc83.zip
journal for the websitejournal
Diffstat (limited to '')
-rw-r--r--lib/kernel/Journal.mli22
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/kernel/Journal.mli b/lib/kernel/Journal.mli
new file mode 100644
index 0000000..d354e03
--- /dev/null
+++ b/lib/kernel/Journal.mli
@@ -0,0 +1,22 @@
+(** 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