aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/Schema.mli
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lib/kernel/Schema.mli23
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/kernel/Schema.mli b/lib/kernel/Schema.mli
new file mode 100644
index 0000000..7970ee2
--- /dev/null
+++ b/lib/kernel/Schema.mli
@@ -0,0 +1,23 @@
+(** A schema: its relations, \schema\[s]\relation\[r]. For now only a
+ namespace for them. *)
+module Make (S : Abstract.Storage.STORAGE) : sig
+ include Merkle.VALUE
+
+ val load :
+ ?bind:EphemeralRelation.binding ->
+ S.connection ->
+ t ->
+ (Protocols.Handle.t, Concepts.Condition.condition) result
+
+ (** a schema handed over with no address, as a directory holding its
+ relations under \relation, to store once the write has begun. A
+ relation with no address is stored as a program if it is one, and
+ as the tuples it holds if not. *)
+ val admit :
+ string ->
+ Protocols.Handle.t ->
+ (S.transaction Prototype.Associative.admission, Concepts.Condition.condition) result
+
+ (** an empty one, stored. *)
+ val make : S.connection -> (Protocols.Handle.t, Concepts.Condition.condition) result
+end