Module Conduit_async

module V1 : sig ... end
module V2 : sig ... end
module V3 : sig ... end
include module type of struct include V1.Conduit_async end
type +'a io = 'a Async.Deferred.t
type ic = Async.Reader.t
type oc = Async.Writer.t
type addr = [
  1. | `OpenSSL of string * Ipaddr.t * int
  2. | `OpenSSL_with_config of string * Ipaddr.t * int * Ssl.config
  3. | `TCP of Ipaddr.t * int
  4. | `Unix_domain_socket of string
]
val sexp_of_addr : addr -> Sexplib0.Sexp.t
val addr_of_sexp : Sexplib0.Sexp.t -> addr
val __addr_of_sexp__ : Sexplib0.Sexp.t -> addr
val connect : ?interrupt:unit io -> addr -> (ic * oc) io
val with_connection : ?interrupt:unit io -> addr -> (ic -> oc -> unit io) -> unit io
type trust_chain = [
  1. | `Ca_file of string
  2. | `Ca_path of string
  3. | `Search_file_first_then_path of [ `File of string ] * [ `Path of string ]
]
val sexp_of_trust_chain : trust_chain -> Sexplib0.Sexp.t
val trust_chain_of_sexp : Sexplib0.Sexp.t -> trust_chain
val __trust_chain_of_sexp__ : Sexplib0.Sexp.t -> trust_chain
type openssl = [
  1. | `OpenSSL of [ `Crt_file_path of string ] * [ `Key_file_path of string ]
]
val sexp_of_openssl : openssl -> Sexplib0.Sexp.t
val openssl_of_sexp : Sexplib0.Sexp.t -> openssl
val __openssl_of_sexp__ : Sexplib0.Sexp.t -> openssl
type server = [
  1. | openssl
  2. | `TCP
  3. | `OpenSSL_with_trust_chain of openssl * trust_chain
]
val sexp_of_server : server -> Sexplib0.Sexp.t
val server_of_sexp : Sexplib0.Sexp.t -> server
val __server_of_sexp__ : Sexplib0.Sexp.t -> server
val serve : ?max_connections:int -> ?backlog:int -> ?buffer_age_limit:Async.Writer.buffer_age_limit -> on_handler_error: [ `Call of [< Async.Socket.Address.t ] as 'a -> exn -> unit | `Ignore | `Raise ] -> server -> ('a, 'b) Async.Tcp.Where_to_listen.t -> ('a -> ic -> oc -> unit io) -> ('a, 'b) Async.Tcp.Server.t io