package piaf

  1. Overview
  2. Docs
type t
type length = [
  1. | `Fixed of Int64.t
  2. | `Chunked
  3. | `Error of [ `Bad_request | `Bad_gateway | `Internal_server_error ]
  4. | `Unknown
  5. | `Close_delimited
]
val length : t -> length
val empty : t
val of_stream : ?length:length -> Bigstringaf.t IOVec.t Lwt_stream.t -> t
val of_string_stream : ?length:length -> string Lwt_stream.t -> t
val of_string : string -> t
val of_bigstring : ?off:int -> ?len:int -> Bigstringaf.t -> t
val to_string : t -> (string, Error.t) Lwt_result.t
val drain : t -> (unit, Error.t) Lwt_result.t
val is_closed : t -> bool
val closed : t -> (unit, Error.t) Lwt_result.t
val when_closed : t -> ((unit, Error.t) result -> unit) -> unit

Traversal

val fold : (Bigstringaf.t IOVec.t -> 'a -> 'a) -> t -> 'a -> ('a, Error.t) Lwt_result.t
val fold_string : (string -> 'a -> 'a) -> t -> 'a -> ('a, Error.t) Lwt_result.t
val fold_s : (Bigstringaf.t Faraday.iovec -> 'a -> 'a Lwt.t) -> t -> 'a -> ('a, Error.t) Lwt_result.t
val fold_string_s : (string -> 'a -> 'a Lwt.t) -> t -> 'a -> ('a, Error.t) Lwt_result.t
val iter : (Bigstringaf.t Faraday.iovec -> unit) -> t -> (unit, Error.t) Lwt_result.t
val iter_string : (string -> unit) -> t -> (unit, Error.t) Lwt_result.t
val iter_s : (Bigstringaf.t Faraday.iovec -> unit Lwt.t) -> t -> (unit, Error.t) Lwt_result.t
val iter_string_s : (string -> unit Lwt.t) -> t -> (unit, Error.t) Lwt_result.t
val iter_p : (Bigstringaf.t Faraday.iovec -> unit Lwt.t) -> t -> (unit, Error.t) Lwt_result.t
val iter_string_p : (string -> unit Lwt.t) -> t -> (unit, Error.t) Lwt_result.t
val iter_n : ?max_concurrency:int -> (Bigstringaf.t Faraday.iovec -> unit Lwt.t) -> t -> (unit, Error.t) Lwt_result.t
val iter_string_n : ?max_concurrency:int -> (string -> unit Lwt.t) -> t -> (unit, Error.t) Lwt_result.t

Conversion to Lwt_stream.t

The functions below convert a Piaf.Body.t to an Lwt_stream.t. These functions should be used sparingly, and only when interacting with other APIs that require their argument to be a Lwt_stream.t.

These functions return a tuple of two elements. In addition to returning a Lwt_stream.t, the tuple's second element is a promise that will sleep until the stream is consumed (and closed). This promise will resolve to Ok () if the body was successfully transferred from the peer; otherwise, it will return Error error with an error of type Error.t detailing the failure that caused the body to not have been fully transferred from the peer.

val to_string_stream : t -> string Lwt_stream.t * (unit, Error.t) Lwt_result.t