Library
Module
Module type
Parameter
Class
Class type
Alternative to Async_unix.Reader, based on the low latency transport in async_rpc.
val sexp_of_t : t -> Sexplib0.Sexp.t
val create : ?buf_len:int -> Async_unix.Fd.t -> t
val is_closed : t -> bool
val closed : t -> unit Async_kernel.Deferred.t
val close : t -> unit Async_kernel.Deferred.t
val refill : t -> [ `Ok | `Eof | `Buffer_is_full ] Async_kernel.Deferred.t
val view : t -> Core.Bigstring.t Core_unix.IOVec.t
val consume : t -> int -> unit
val drain : t -> unit Async_kernel.Deferred.t
drain t
reads chunks of data from the reader and discards them.
val pipe : t -> string Async_kernel.Pipe.Reader.t
pipe
returns a reader pipe that contains the results of reading chunks from an input_channel.
val transfer :
t ->
string Async_kernel.Pipe.Writer.t ->
unit Async_kernel.Deferred.t
transfer
will read chunks from an input channel and write them to the provided writer end of an async pipe. The deferred returned by the function will be determined on EOF or if the writer is closed. Use transfer
in scenarios where pipe
is needed, but if there is a need to not close the channel automatically once the transfer is finished.
val of_pipe :
Core.Info.t ->
string Async_kernel.Pipe.Reader.t ->
t Async_kernel.Deferred.t
val read_line : t -> [ `Ok of string | `Eof ] Async_kernel.Deferred.t
val lines : t -> string Async_kernel.Pipe.Reader.t
val read : t -> int -> [ `Ok of string | `Eof ] Async_kernel.Deferred.t
val open_file : ?buf_len:int -> Core.Filename.t -> t Async_kernel.Deferred.t
open_file ?buf_len filename
opens filename
and returns an Input_channel
that can be used to read from the file. buf_len
is an optional input and can be used to control the channel's buffer size.
val with_file :
?buf_len:int ->
Core.Filename.t ->
f:(t -> 'a Async_kernel.Deferred.t) ->
'a Async_kernel.Deferred.t
with_file ?buf_len filename ~f
opens filename
, creates a new channel and passes it to f
. Once f
returns, the channel and the underlying file is closed.