Module Conduit_async

module V1 : sig ... end
module V2 : sig ... end
module V3 : sig ... end
include V1.Conduit_async
type +'a io = 'a Async.Deferred.t
type ic = Async.Reader.t
type oc = Async.Writer.t
type addr = [
| `OpenSSL of string * Ipaddr.t * int
| `OpenSSL_with_config of string * Ipaddr.t * int * Ssl.config
| `TCP of Ipaddr.t * int
| `Unix_domain_socket of string
]
val sexp_of_addr : addr -> Ppx_sexp_conv_lib.Sexp.t
val addr_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> addr
val __addr_of_sexp__ : Ppx_sexp_conv_lib.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 = [
| `Ca_file of string
| `Ca_path of string
| `Search_file_first_then_path of [ `File of string ] * [ `Path of string ]
]
val sexp_of_trust_chain : trust_chain -> Ppx_sexp_conv_lib.Sexp.t
val trust_chain_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> trust_chain
val __trust_chain_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> trust_chain
type openssl = [
| `OpenSSL of [ `Crt_file_path of string ] * [ `Key_file_path of string ]
]
val sexp_of_openssl : openssl -> Ppx_sexp_conv_lib.Sexp.t
val openssl_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> openssl
val __openssl_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> openssl
type server = [
| openssl
| `TCP
| `OpenSSL_with_trust_chain of openssl * trust_chain
]
val sexp_of_server : server -> Ppx_sexp_conv_lib.Sexp.t
val server_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> server
val __server_of_sexp__ : Ppx_sexp_conv_lib.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