this repo has no description
at main 1.4 kB view raw
1open Capnp_rpc 2 3let v sr ~add_user ~remove_user = 4 let module X = Raw.Service.Admin in 5 Capnp_rpc.Persistence.with_sturdy_ref sr X.local 6 @@ object 7 inherit X.service 8 9 method add_user_impl params release_param_caps = 10 let open X.AddUser in 11 let id = Params.user_get params in 12 release_param_caps (); 13 let cap = add_user id in 14 let response, results = Service.Response.create Results.init_pointer in 15 Results.cap_set results (Some cap); 16 Capability.dec_ref cap; 17 Service.return response 18 19 method remove_user_impl params release_param_caps = 20 let open X.RemoveUser in 21 let id = Params.user_get params in 22 release_param_caps (); 23 remove_user id; 24 Service.return @@ Service.Response.create_empty () 25 end 26 27module X = Raw.Client.Admin 28 29type t = X.t Capability.t 30 31let add_user t user = 32 let open X.AddUser in 33 let request, params = Capability.Request.create Params.init_pointer in 34 Params.user_set params user; 35 Capability.call_for_caps t method_id request Results.cap_get_pipelined 36 37let remove_user t user = 38 let open X.RemoveUser in 39 let request, params = Capability.Request.create Params.init_pointer in 40 Params.user_set params user; 41 let _ : _ StructStorage.reader_t = 42 Capability.call_for_value_exn t method_id request 43 in 44 ()