aboutsummaryrefslogtreecommitdiffstats
path: root/lib/listener.ml
diff options
context:
space:
mode:
authorEstevan Castilho <tevo@riajuu.net>2026-05-30 01:43:10 +0000
committerGitHub <noreply@github.com>2026-05-30 01:43:10 +0000
commit8106d31690dad61ee0ec649ae6de7f4e3fe1830e (patch)
treefc50ca3bdf755cee7157540b79ba26d6ecef7e62 /lib/listener.ml
parent1378202e6b0b51d7d338a1042824860f19fcbc9b (diff)
downloadSakura-8106d31690dad61ee0ec649ae6de7f4e3fe1830e.tar.gz
Sakura-8106d31690dad61ee0ec649ae6de7f4e3fe1830e.zip
Some scaffolding for sublanguage tests (#72)
* No need to take the multigroup name as an argument * Record backtraces when instantiating conditions * Equality for abstract values * Move `make_ctx` out of the listener * Include the return code on `handle-error` conditions * Do not include brackets around stringified condition properties * Equality for materialized attributes * Equality for materialized tuples * Scaffolding for a test suite
Diffstat (limited to 'lib/listener.ml')
-rw-r--r--lib/listener.ml27
1 files changed, 3 insertions, 24 deletions
diff --git a/lib/listener.ml b/lib/listener.ml
index ba61a50..b3090a7 100644
--- a/lib/listener.ml
+++ b/lib/listener.ml
@@ -8,6 +8,7 @@ functor
module Sess = Session.Make (NT)
module B = Branch.Make (NT)
+ module SC = Sublanguage_context.Make (NT)
module Error = struct
open Condition
@@ -37,30 +38,8 @@ functor
state. Called at the top of every handle_sublanguage so it
always reflects the live branch after any prior VCL
switch. **)
- let make_ctx (state : conn_state) : Sublanguage_context.t =
- let br = state.session#branch in
- let claims = state.claims in
- let session = state.session in
- {
- Sublanguage_context.write_handle = br#branch_handle;
- branch = (br :> Sublanguage_context.branch_view);
- resolve = br#path;
- switch_branch = fun name ->
- match br#close () with
- | Error e -> Error e
- | Ok () ->
- begin match B.open_branch claims name with
- | Error e ->
- begin match B.open_branch claims "master" with
- | Ok mbr -> session#set_branch mbr
- | Error _ -> ()
- end;
- Error e
- | Ok new_br ->
- session#set_branch new_br;
- Ok new_br#multigroups
- end
- }
+ let make_ctx ({ session; claims } : conn_state) : Sublanguage_context.t =
+ SC.make_ctx session claims
let read_command input =
try Ok (Sexplib.Sexp.input_sexp input)