package vif

  1. Overview
  2. Docs
A simple web framework for OCaml 5

Install

dune-project
 Dependency

Authors

Maintainers

Sources

vif-0.0.1.beta5.tbz
sha256=f2dafa4f12105d85b4dc2d1e1492f03e809c85d5834dc5694b99226418fe2719
sha512=1e2087db43e8e13bfc240c1114790ceb702b941d389bbb94a7a18668e65f61d2224f05038cf9101ede890581b0e2227e4d2bd2c620f312fa18c8e37482e273c4

doc/src/vif.core/vif_headers.ml.html

Source file vif_headers.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
27
28
type t = (string * string) list

let mem hdrs key =
  let exception True in
  let key = String.lowercase_ascii key in
  let fn (key', _) =
    if String.lowercase_ascii key' = key then raise_notrace True
  in
  try List.iter fn hdrs; false with True -> true

let add_unless_exists hdrs k v = if mem hdrs k then hdrs else (k, v) :: hdrs

let get hdrs key =
  let exception Found of string in
  let key = String.lowercase_ascii key in
  let fn (key', value) =
    if String.lowercase_ascii key' = key then raise_notrace (Found value)
  in
  try List.iter fn hdrs; None with Found value -> Some value

let rem hdrs key =
  let key = String.lowercase_ascii key in
  let fn acc (key', value) =
    if String.lowercase_ascii key' = key then acc else (key', value) :: acc
  in
  List.fold_left fn [] hdrs |> List.rev

let pp = Fmt.(Dump.list (Dump.pair string string))