EzServerEioUtils.Directorytype 'a directory = {services : 'a registered_service Dir_types.MethMap.t;subdirs : 'a static_subdirectories option * 'a variable_subdirectories option;}and 'a static_subdirectories = 'a directory EzAPI.StringMap.tand _ variable_subdirectories = | Arg : 'a1 EzAPI.Arg.t * ('a * 'a1) directory -> 'a variable_subdirectoriesand _ registered_service = | Http : {service : ('a, 'i, 'o, 'e, 's) EzAPI.Service.t;handler : 'a -> 'i -> ('o, 'e) Stdlib.result Answer.t;} -> 'a registered_service| Websocket : {service : ('a, 'i, 'o, 'e, 's) EzAPI.Service.t;react : 'a -> 'i -> ('o, 'e) Stdlib.result;bg : 'a -> (('o, 'e) Stdlib.result -> unit) -> unit;onclose : ('a -> unit) option;step : float option;} -> 'a registered_serviceval empty : 'a directorytype t = EzAPI.Req.t directorytype lookup_error = [ | `Not_found| `Cannot_parse of EzAPI.Arg.descr * string * string list| `Method_not_allowed ]type handler_error = [ | EzEncoding.destruct_error| `unsupported of string option| `handler_exn of exn| `handler_error of string ]type lookup_ok = [ | `head| `options of (string * string) list| `http of string -> (string Answer.t, handler_error) Stdlib.result| `ws of
(string ->
(ws_frame, handler_error) Stdlib.result)
* (((ws_frame, handler_error) Stdlib.result -> unit) ->
unit)
* (unit -> unit) option
* float option ]val conflict_to_string : Dir_types.conflict -> stringval resolve :
'a. string list ->
'a directory ->
'a ->
string list ->
(resolved_directory, lookup_error) Stdlib.resultval ser_handler :
'i 'o 'e. ?content_type:string ->
headers:EzAPI.StringSet.t EzAPI.StringMap.t ->
('a -> 'i -> ('o, 'e) Stdlib.result Answer.t) ->
'a ->
'i EzAPI.io ->
'o EzAPI.io ->
('e -> int * string) ->
string ->
(string Answer.t, handler_error) Stdlib.resultval ser_websocket :
('a -> 'b -> ('c, 'd) Stdlib.result) ->
('a -> (('c, 'd) Stdlib.result -> 'e) -> 'f) ->
'a ->
'b EzAPI.IO.io ->
'c EzAPI.io ->
'd Json_encoding.encoding ->
(string ->
(ws_frame,
[> `destruct_exn of exn | `handler_error of string | `handler_exn of exn ])
Stdlib.result)
* (((ws_frame, [> `handler_error of string ]) Stdlib.result -> 'e) ->
'f)val options_headers :
'a directory ->
(EzAPI.StringMap.key * string) list optionval lookup :
?meth:[< `DELETE | `GET | `HEAD | `OPTIONS | `PATCH | `POST | `PUT ] ->
?content_type:string ->
'a directory ->
'a ->
string list ->
(lookup_ok, lookup_error) Stdlib.resultval step_of_path : ('a, 'b) EzAPI.Path.t -> Dir_types.Step.t listval conflict :
('a, 'b) EzAPI.Path.t ->
'c ->
('d, Dir_types.Step.t list * 'c) Stdlib.resultval insert :
'r 'a. ('r, 'a) EzAPI.Path.t ->
'r directory ->
('a directory * ('a directory -> 'r directory),
Dir_types.Step.t list * Dir_types.conflict)
Stdlib.resultval register :
'a. t ->
('a, 'b, 'c, 'd, [< EzAPI.Security.scheme ] as 'e) EzAPI.Service.t ->
(('a, 'b, 'c, 'd, 'e) EzAPI.Service.t -> 'a registered_service) ->
(t, Dir_types.Step.t list * Dir_types.conflict) Stdlib.resultval register_http :
t ->
('a, 'b, 'c, 'd, [< EzAPI.Security.scheme ]) EzAPI.Service.t ->
('a -> 'b -> ('c, 'd) Stdlib.result Answer.t) ->
(t, Dir_types.Step.t list * Dir_types.conflict) Stdlib.resultval register_ws :
t ->
?onclose:('a -> unit) ->
?step:float ->
react:('a -> 'b -> ('c, 'd) Stdlib.result) ->
bg:('a -> (('c, 'd) Stdlib.result -> unit) -> unit) ->
('a, 'b, 'c, 'd, [< EzAPI.Security.scheme ]) EzAPI.Service.t ->
(t, Dir_types.Step.t list * Dir_types.conflict) Stdlib.result