sig
type ('a, 'phantom) t = ('a, 'phantom) Pipe.t
val sexp_of_t :
('a -> Sexplib.Sexp.t) ->
('phantom -> Sexplib.Sexp.t) -> ('a, 'phantom) t -> Sexplib.Sexp.t
type ('a, 'phantom) pipe = ('a, 'phantom) t
val sexp_of_pipe :
('a -> Sexplib.Sexp.t) ->
('phantom -> Sexplib.Sexp.t) -> ('a, 'phantom) pipe -> Sexplib.Sexp.t
module Writer :
sig
type phantom = Pipe.Writer.phantom
type 'a t = ('a, phantom) pipe
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t
val invariant : 'a t -> unit
end
module Reader :
sig
type phantom = Pipe.Reader.phantom
type 'a t = ('a, phantom) pipe
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t
val invariant : 'a t -> unit
end
val create : unit -> 'a Reader.t * 'a Writer.t
val of_list : 'a list -> 'a Reader.t
val close : 'a Writer.t -> unit
val close_read : 'a Reader.t -> unit
val is_closed : ('a, 'b) t -> bool
val closed : ('a, 'b) t -> unit Deferred.t
val flushed : ('a, 'b) t -> [ `Ok | `Reader_closed ] Deferred.t
val length : ('a, 'b) t -> int
val pushback : 'a Writer.t -> unit Deferred.t
val write' : 'a Writer.t -> 'a Core.Std.Queue.t -> unit Deferred.t
val write : 'a Writer.t -> 'a -> unit Deferred.t
val with_write :
'a Writer.t ->
f:(('a -> unit) -> 'b) -> [ `Closed | `Ok of 'b ] Deferred.t
val read' : 'a Reader.t -> [ `Eof | `Ok of 'a Core.Std.Queue.t ] Deferred.t
val read : 'a Reader.t -> [ `Eof | `Ok of 'a ] Deferred.t
val read_at_most :
'a Reader.t ->
num_values:int -> [ `Eof | `Ok of 'a Core.Std.Queue.t ] Deferred.t
val read_exactly :
'a Reader.t ->
num_values:int ->
[ `Eof | `Exactly of 'a Core.Std.Queue.t | `Fewer of 'a Core.Std.Queue.t ]
Deferred.t
val read_now :
'a Reader.t -> [ `Eof | `Nothing_available | `Ok of 'a Core.Std.Queue.t ]
val clear : 'a Reader.t -> unit
val read_all : 'a Reader.t -> 'a Core.Std.Queue.t Deferred.t
val values_available : 'a Reader.t -> [ `Eof | `Ok ] Deferred.t
val fold' :
'a Reader.t ->
init:'b ->
f:('b -> 'a Core.Std.Queue.t -> 'b Deferred.t) -> 'b Deferred.t
val fold : 'a Reader.t -> init:'b -> f:('b -> 'a -> 'b) -> 'b Deferred.t
val iter' :
'a Reader.t ->
f:('a Core.Std.Queue.t -> unit Deferred.t) -> unit Deferred.t
val iter : 'a Reader.t -> f:('a -> unit Deferred.t) -> unit Deferred.t
val iter_without_pushback :
'a Reader.t -> f:('a -> unit) -> unit Deferred.t
val transfer' :
'a Reader.t ->
'b Writer.t ->
f:('a Core.Std.Queue.t -> 'b Core.Std.Queue.t Deferred.t) ->
unit Deferred.t
val transfer :
'a Reader.t -> 'b Writer.t -> f:('a -> 'b) -> unit Deferred.t
val transfer_id : 'a Reader.t -> 'a Writer.t -> unit Deferred.t
val map' :
'a Reader.t ->
f:('a Core.Std.Queue.t -> 'b Core.Std.Queue.t Deferred.t) -> 'b Reader.t
val map : 'a Reader.t -> f:('a -> 'b) -> 'b Reader.t
val filter_map' :
'a Reader.t -> f:('a -> 'b option Deferred.t) -> 'b Reader.t
val filter_map : 'a Reader.t -> f:('a -> 'b option) -> 'b Reader.t
val filter : 'a Reader.t -> f:('a -> bool) -> 'a Reader.t
val interleave : 'a Reader.t list -> 'a Reader.t
val concat : 'a Reader.t list -> 'a Reader.t
val to_stream : 'a Reader.t -> 'a Async_stream.t
val of_stream : 'a Async_stream.t -> 'a Reader.t
val drain : 'a Reader.t -> unit Deferred.t
val drain_and_count : 'a Reader.t -> int Deferred.t
val to_list : 'a Reader.t -> 'a list Deferred.t
val hash : ('a, 'b) t -> int
val equal : ('a, 'b) t -> ('a, 'b) t -> bool
val size_budget : ('a, 'b) t -> int
val set_size_budget : ('a, 'b) t -> int -> unit
val show_debug_messages : bool ref
val check_invariant : bool ref
val ounit_tests : unit -> OUnit.test
end