Module Async_kernel.Tail

A pointer to the end of an Async_stream that can be used to extend the stream.

module Deferred = Async_kernel__.Deferred1
type 'a t = 'a Async_kernel__.Types.Tail.t
include sig ... end
val sexp_of_t : ('a ‑> Base.Sexp.t) ‑> 'a t ‑> Base.Sexp.t
val create : unit ‑> _ t

create () returns a new tail.

val extend : 'a t ‑> 'a ‑> unit

extend t v extends the stream, and will raise an exception if t has been closed.

val close_exn : _ t ‑> unit

close_exn t closes t. Subsequent calls to close_exn or extend will raise an exception.

val close_if_open : _ t ‑> unit

close_if_open t closes t, if it's not already closed. If t is already closed, then this is a no-op.

val is_closed : _ t ‑> bool

is_closed t returns true iff the stream t is closed.

module Stream : sig ... end
val collect : 'a t ‑> 'a Stream.t

collect t returns the stream starting at the current position of the tail, i.e. the stream consisting of all subsequent extends.