summaryrefslogtreecommitdiff
path: root/src/internal.mli
blob: a424a08287af3df91e1a02b6dd4d36ea1ee6a2d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
exception Read_error of string
exception Write_error of string

module type T =
    sig
        type t
        val to_yojson : t -> Yojson.Safe.t
        val of_yojson : Yojson.Safe.t -> t Ppx_deriving_yojson_runtime.error_or
        val default : t
    end

module type FI = functor (M : T) ->
    sig
        val write_string : M.t -> string

        val read_string : string -> M.t
        [@@alert exn "Internal.Read_error"]

        val write_internal : M.t -> string -> unit
        [@@alert exn "Internal.Write_error"]

        val write_internal_atomic : M.t -> string -> unit
        [@@alert exn "Internal.Write_error"]

        val read_internal : string -> M.t
        [@@alert exn "Internal.Read_error"]

        val replace_internal : string -> string -> unit
        [@@alert exn "Internal.Write_error"]
    end

module Make : FI