package opium

  1. Overview
  2. Docs

Module Opium.BodySource

Represents an HTTP request or response body.

Sourcetype content = [
  1. | `Empty
  2. | `String of string
  3. | `Bigstring of Bigstringaf.t
  4. | `Stream of string Lwt_stream.t
]
Sourcetype t = Rock.Body.t = {
  1. length : Int64.t option;
  2. content : content;
}

t represents an HTTP message body.

Constructor

Sourceval of_string : string -> t

of_string creates a fixed length body from a string.

Sourceval of_bigstring : Bigstringaf.t -> t

of_bigstring creates a fixed length body from a bigstring.

Sourceval of_stream : ?length:Int64.t -> string Lwt_stream.t -> t

of_stream takes a string Lwt_stream.t and creates a HTTP body from it.

Sourceval of_file : string -> t option Lwt.t

of_file path creates a response body by reading the file at path.

Sourceval empty : t

empty represents a body of size 0L.

Sourceval copy : t -> t

copy t creates a new instance of the body t. If the body is a stream, it is be duplicated safely and the initial stream will remain untouched.

Decoders

Sourceval to_string : t -> string Lwt.t

to_string t returns a promise that will eventually be filled with a string representation of the body.

Sourceval to_stream : t -> string Lwt_stream.t

to_stream t converts the body to a string Lwt_stream.t.

Getters and Setters

Sourceval length : t -> Int64.t option

Utilities

Sourceval drain : t -> unit Lwt.t

drain t will repeatedly read values from the body stream and discard them.

Sourceval sexp_of_t : t -> Sexplib0.Sexp.t

sexp_of_t t converts the body t to an s-expression

Sourceval pp : Format.formatter -> t -> unit

pp formats the body t as an s-expression

Sourceval pp_hum : Format.formatter -> t -> unit

pp_hum formats the body t as an string.

If the body content is a stream, the pretty printer will output the value "<stream>"

OCaml

Innovation. Community. Security.