Module Cohttp.Accept

Accept-Encoding HTTP header parsing and generation

type q = int

Qualities are integers between 0 and 1000. A header with "q=0.7" corresponds to a quality of 700.

val sexp_of_q : q -> Ppx_sexp_conv_lib.Sexp.t
val q_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> q
type 'a qlist = (q * 'a) list

Lists, annotated with qualities.

val sexp_of_qlist : ('a -> Ppx_sexp_conv_lib.Sexp.t) -> 'a qlist -> Ppx_sexp_conv_lib.Sexp.t
val qlist_of_sexp : (Ppx_sexp_conv_lib.Sexp.t -> 'a) -> Ppx_sexp_conv_lib.Sexp.t -> 'a qlist
val qsort : 'a qlist -> 'a qlist

Sort by quality, biggest first. Respect the initial ordering.

type pv =
| T of string
| S of string
val sexp_of_pv : pv -> Ppx_sexp_conv_lib.Sexp.t
val pv_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> pv
type p = string * pv
val sexp_of_p : p -> Ppx_sexp_conv_lib.Sexp.t
val p_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> p
type media_range =
| MediaType of string * string
| AnyMediaSubtype of string
| AnyMedia
val sexp_of_media_range : media_range -> Ppx_sexp_conv_lib.Sexp.t
val media_range_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> media_range
type charset =
| Charset of string
| AnyCharset
val sexp_of_charset : charset -> Ppx_sexp_conv_lib.Sexp.t
val charset_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> charset
type encoding =
| Encoding of string
| Gzip
| Compress
| Deflate
| Identity
| AnyEncoding
val sexp_of_encoding : encoding -> Ppx_sexp_conv_lib.Sexp.t
val encoding_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> encoding
type language =
| Language of string list
| AnyLanguage

Basic language range tag. "en-gb" is represented as Language ["en"; "gb"].

see https://tools.ietf.org/html/rfc7231#section-5.3.5

the specification.

val sexp_of_language : language -> Ppx_sexp_conv_lib.Sexp.t
val language_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> language
val media_ranges : string option -> (media_range * p list) qlist
val charsets : string option -> charset qlist
val encodings : string option -> encoding qlist
val languages : string option -> language qlist
val string_of_media_range : (media_range * (string * pv) list) -> q -> string
val string_of_charset : charset -> q -> string
val string_of_encoding : encoding -> q -> string
val string_of_language : language -> q -> string
val string_of_media_ranges : (media_range * p list) qlist -> string
val string_of_charsets : charset qlist -> string
val string_of_encodings : encoding qlist -> string
val string_of_languages : language qlist -> string