Source file schema.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
include Rpc_schema.Make(Capnp.BytesMessage)

module ReaderOps = struct
  include Capnp.Runtime.ReaderInc.Make(Capnp.RPC.None(Capnp.BytesMessage))

  let string_of_pointer = function
    | None -> ""
    | Some ptr ->
      let open Capnp.BytesMessage in
      let data = { ptr with Slice.len = 0 } in
      let ss = StructStorage.v ~data ~pointers:ptr in
      get_text ~default:"" (Some ss) 0
end

module BuilderOps = struct
  include Capnp.Runtime.BuilderInc.Make(Capnp.RPC.None(Capnp.BytesMessage))

  let write_string ptr s =
    let open Capnp.BytesMessage in
    let data = { ptr with Slice.len = 0 } in
    let ss = StructStorage.v ~data ~pointers:ptr in
    BA_.set_text ss 0 s
end