package piaf

  1. Overview
  2. Docs
An HTTP library with HTTP/2 support written entirely in OCaml

Install

Dune Dependency

Authors

Maintainers

Sources

piaf-0.1.0.tbz
sha256=00c3bea6d1a8c77dc18bbbbf1f449a78253cf17391ad153751b2e87f71307265
sha512=0f35e88b78ec1f1cd06a972ee69e29a8983b4c07dbc0268cc9764d8df5d9c2402cc3710874f54a111095fb57a08fe582d99d1b7e070e141e260af6ced50172aa

doc/src/piaf.httpaf/response_state.ml.html

Source file response_state.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
type t =
  | Waiting
  | Fixed  of Response.t
  | Streaming of Response.t * [`write] Body.t
  | Upgrade of Response.t * (unit -> unit)

let output_state t : Output_state.t =
  match t with
  | Fixed _ -> Complete
  | Waiting -> Waiting
  | Streaming(_, response_body) ->
    if Body.requires_output response_body
    then Ready
    else Complete
  | Upgrade _ -> Ready

let flush_response_body t ~request_method writer =
  match t with
  | Streaming (response, response_body) ->
    let encoding =
      match Response.body_length ~request_method response with
      | `Fixed _ | `Close_delimited | `Chunked as encoding -> encoding
      | `Error _ -> assert false (* XXX(seliopou): This needs to be handled properly *)
    in
    Body.transfer_to_writer_with_encoding response_body ~encoding writer
  | _ -> ()
OCaml

Innovation. Community. Security.