Tezos_rpc.Queryinclude module type of struct include Resto.Query endtype 'a t = 'a Resto.Query.tA type for representing query parameters.
type 'a query = 'a tval empty : unit queryempty is for services that expects no query parameters.
type ('a, 'b) field = ('a, 'b) Resto.Query.fieldThe type for key-value pairs that constitute a query. The first type parameter is for whole-query store and the second is for the type of value carried by the field.
val field :
?descr:string ->
string ->
'a Resto.Arg.t ->
'a ->
('b -> 'a) ->
('b, 'a) fieldfield ?descr key arg default get is a field for the query parameters, i.e., it describes one key-value pair.
The key is given by key and the value is parsed as specified in arg or, if absent from the URI suffix, default.
Finally, get is for retrieving the value from the whole-query store. More on the whole-query store below.
val opt_field :
?descr:string ->
string ->
'a Resto.Arg.t ->
('b -> 'a option) ->
('b, 'a option) fieldval flag : ?descr:string -> string -> ('b -> bool) -> ('b, bool) fieldval multi_field :
?descr:string ->
string ->
'a Resto.Arg.t ->
('b -> 'a list) ->
('b, 'a list) fieldtype ('a, 'b, 'c) open_query = ('a, 'b, 'c) Resto.Query.open_queryQueries are constructed by adding fields to an open query and sealing it into a query. This is done using the functions below. Typically, it is done as follow: query c |+ field1 |+ field2 |> seal
As the types require, you must provide the correct argument to the successive building steps. Here is an example: query (fun timeout shade -> (timeout, shade)) |+ field "timeout" Arg.float 10. (fun (timeout, _) -> timeout) |+ field "shade" Arg.string "fuchsia" (fun (_, shade) -> shade) |> seal
The initial query function takes a whole-query store builder (a function that assemble all the fields into a single store of values), and each field takes a function to recover the value from the whole-query store.
val query : 'b -> ('a, 'b, 'b) open_queryval (|+) :
('a, 'b, 'c -> 'd) open_query ->
('a, 'c) field ->
('a, 'b, 'd) open_queryval seal : ('a, 'b, 'a) open_query -> 'a t