package vif

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

Install

dune-project
 Dependency

Authors

Maintainers

Sources

vif-0.0.1.beta6.tbz
sha256=98c4b7959e5a2289179e26c4c378720f4c60b920bf5be2c1c1ba8bac82b4230b
sha512=20c155e32073ccee63996f8012d1dadfae6c0f7a8f838729566d36b426a26953be94ce0edf4e6a47007f1b9b0af45a028667258d7b14bbcbc282b099feae0f33

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))