package async

  1. Overview
  2. Docs
Monadic concurrency library

Install

Dune Dependency

Authors

Maintainers

Sources

async-v0.13.0.tar.gz
sha256=fef9ebe342ea59d7804f6292b7891ad664a8ba8d4174a1b202db91363a9c71ab
md5=fbfc7059179bc9ddd5dc1411e7d2e815

doc/async.unpack_sequence/Unpack_sequence/index.html

Module Unpack_sequence

Unpack_sequence uses an Unpack_buffer.t to unpack a sequence of packed values coming from a string Pipe.Reader.t or a Reader.t. It can produce a pipe of upacked values or iterate a user-supplied function over the unpacked values.

module Unpack_iter_result : sig ... end
module Unpack_result : sig ... end
module Unpack_from : sig ... end

Unpack_from specifies the source of the sequence of bytes to unpack from.

val unpack_into_pipe : from:Unpack_from.t -> using:'a Unpack_buffer.t -> 'a Async.Pipe.Reader.t * 'a Unpack_result.t Async.Deferred.t

unpack_into_pipe ~from:input ~using:unpack_buffer returns (output, result), and uses unpack_buffer to unpack values from input until input is closed. It puts the unpacked values into output, which is closed once unpacking finishes, be it normally or due to an error. result indicates why unpacking finished.

To unpack from a bin_reader, use:

  unpack_into_pipe ~from ~using:(Unpack_buffer.create_bin_prot bin_reader)

Using ~from:(Reader reader) is more efficient than ~from:(Pipe (Reader.pipe reader)) because it blits bytes directly from the reader buffer to the unpack buffer, without any intervening allocation.

val unpack_iter : from:Unpack_from.t -> using:'a Unpack_buffer.t -> f:('a -> unit) -> 'a Unpack_iter_result.t Async.Deferred.t

unpack_iter is a more efficient version of unpack_into_pipe that calls f on each value as it is unpacked, rather than putting the value into a pipe. If f raises, then the result will be Unpack_error.

OCaml

Innovation. Community. Security.