Module MakeService.Internal
type 'a arg = {
id : 'a Ty.id;
destruct : string -> ('a, string) Stdlib.result;
construct : 'a -> string;
descr : Arg.descr;
}
type (_, _) path =
| Root : ('rkey, 'rkey) path
| Static : ('rkey, 'key) path * string -> ('rkey, 'key) path
| Dynamic : ('rkey, 'key) path * 'a arg -> ('rkey, 'key * 'a) path
| DynamicTail : ('rkey, 'key) path * 'a arg -> ('rkey, 'key * 'a list) path
and ('a, 'b) query_field =
| Single : {
name : string;
description : string option;
ty : 'b arg;
default : 'b;
get : 'a -> 'b;
} -> ('a, 'b) query_field
| Opt : {
name : string;
description : string option;
ty : 'b arg;
get : 'a -> 'b option;
} -> ('a, 'b option) query_field
| Flag : {
name : string;
description : string option;
get : 'a -> bool;
} -> ('a, bool) query_field
| Multi : {
name : string;
description : string option;
ty : 'b arg;
get : 'a -> 'b list;
} -> ('a, 'b list) query_field
val field_description : ('a, 'b) query_field -> string option
type (+'meth, 'prefix, 'params, 'query, 'input, 'output, 'error) iservice = {
description : string option;
meth : 'meth;
path : ('prefix, 'params) path;
types : ('query, 'input, 'output, 'error) types;
} constraint 'meth = [< meth ]
type (_, _) eq =
| 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 :
('meth, 'prefix, 'params, 'query, 'input, 'output, 'error) iservice ->
('meth, 'prefix, 'params, 'query, 'input, 'output, 'error) service
val to_service :
('meth, 'prefix, 'params, 'query, 'input, 'output, 'error) service ->
('meth, 'prefix, 'params, 'query, 'input, 'output, 'error) iservice