Module Service.Internal

module Ty = Resto.Internal.Ty
type !'a arg = 'a Resto.Internal.arg = {
  1. id : 'a Ty.id;
  2. destruct : string -> ('a, string) Stdlib.result;
  3. construct : 'a -> string;
  4. descr : Resto.Arg.descr;
}
val from_arg : 'a arg -> 'a Resto.Arg.t
val to_arg : 'a Resto.Arg.t -> 'a arg
type (!'b, !'c) path = ('b, 'c) Resto.Internal.path =
  1. | Root : ('rkey, 'rkey) path
  2. | Static : ('rkey0, 'key) path * string -> ('rkey0, 'key) path
  3. | Dynamic : ('rkey1, 'key0) path * 'a arg -> ('rkey1, 'key0 * 'a) path
  4. | DynamicTail : ('rkey2, 'key1) path * 'a0 arg -> ('rkey2, 'key1 * 'a0 list) path
val from_path : ('a, 'b) path -> ('a, 'b) Resto.Path.t
val to_path : ('a, 'b) Resto.Path.t -> ('a, 'b) path
type !'a query = 'a Resto.Internal.query =
  1. | Fields : ('a0, 'b) query_fields * 'b -> 'a0 query
and (!'a, !'b) query_fields = ('a, 'b) Resto.Internal.query_fields =
  1. | F0 : ('a0, 'a0) query_fields
  2. | F1 : ('a1, 'b0) query_field * ('a1, 'c) query_fields -> ('a1, 'b0 -> 'c) query_fields
and (!'a, !'b) query_field = ('a, 'b) Resto.Internal.query_field =
  1. | Single : {
    1. name : string;
    2. description : string option;
    3. ty : 'b0 arg;
    4. default : 'b0;
    5. get : 'a0 -> 'b0;
    } -> ('a0, 'b0) query_field
  2. | Opt : {
    1. name : string;
    2. description : string option;
    3. ty : 'b1 arg;
    4. get : 'a1 -> 'b1 option;
    } -> ('a1, 'b1 option) query_field
  3. | Flag : {
    1. name : string;
    2. description : string option;
    3. get : 'a2 -> bool;
    } -> ('a2, bool) query_field
  4. | Multi : {
    1. name : string;
    2. description : string option;
    3. ty : 'b2 arg;
    4. get : 'a3 -> 'b2 list;
    } -> ('a3, 'b2 list) query_field
val from_query : 'a query -> 'a Resto.Query.t
val to_query : 'a Resto.Query.t -> 'a query
val field_name : ('a, 'b) query_field -> string
val field_description : ('a, 'b) query_field -> string option
val field_kind : ('a, 'b) query_field -> Resto.Description.query_kind
type (!'query, !'input, !'output, !'error) types = ('query, 'input, 'output, 'error) Resto.MakeService(Mavryk_rpc__.RPC_encoding).Internal.types = {
  1. query : 'query Resto.Query.t;
  2. input : 'input input;
  3. output : 'output Mavryk_rpc__.RPC_encoding.t;
  4. error : 'error Mavryk_rpc__.RPC_encoding.t;
}
type (!+'a, !'prefix, !'params, !'query, !'input, !'output, !'error) iservice = ('a, 'prefix, 'params, 'query, 'input, 'output, 'error) Resto.MakeService(Mavryk_rpc__.RPC_encoding).Internal.iservice = {
  1. description : string option;
  2. meth : 'a;
  3. path : ('prefix, 'params) path;
  4. types : ('query, 'input, 'output, 'error) types;
} constraint 'a = [< Resto.meth ]
exception Not_equal
type (!'a, !'b) eq = ('a, 'b) Resto.MakeService(Mavryk_rpc__.RPC_encoding).Internal.eq =
  1. | Eq : (('query, 'input, 'output, 'error) types, ('query, 'input, 'output, 'error) types) eq
val eq : ('query1, 'input1, 'output1, 'error1) types -> ('query2, 'input2, 'output2, 'error2) types -> (('query1, 'input1, 'output1, 'error1) types, ('query2, 'input2, 'output2, 'error2) types) eq
val from_service : ([< Resto.meth ] as 'a, 'prefix, 'params, 'query, 'input, 'output, 'error) iservice -> ('a, 'prefix, 'params, 'query, 'input, 'output, 'error) service
val to_service : ([< Resto.meth ] as 'a, 'prefix, 'params, 'query, 'input, 'output, 'error) service -> ('a, 'prefix, 'params, 'query, 'input, 'output, 'error) iservice