Module type Resp_server.S

type ic
type oc
type server
type data
module Client : sig ... end
val run : server -> ((ic * oc) -> unit Lwt.t) -> unit Lwt.t
module Value : Resp.S with type Reader.ic = ic and type Writer.oc = oc
module Auth : sig ... end
type client = {
data : Client.t;
ic : ic;
oc : oc;
}
type command = data -> client -> string -> int -> unit Lwt.t
val discard_n : client -> int -> unit Lwt.t
val finish : client -> nargs:int -> int -> unit Lwt.t
val ok : client -> unit Lwt.t
val error : client -> string -> unit Lwt.t
val invalid_arguments : client -> unit Lwt.t
val send : client -> Resp.t -> unit Lwt.t
val recv : client -> Resp.t Lwt.t
type t
val create : ?auth:Auth.t -> ?commands:(string * command) list -> ?default:string -> server -> data -> t
val start : t -> unit Lwt.t