package cohttp

  1. Overview
  2. Docs

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 -> Sexplib0.Sexp.t
val q_of_sexp : Sexplib0.Sexp.t -> q
type 'a qlist = (q * 'a) list

Lists, annotated with qualities.

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

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

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

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

val sexp_of_language : language -> Sexplib0.Sexp.t
val language_of_sexp : Sexplib0.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
OCaml

Innovation. Community. Security.