package vif

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

Install

dune-project
 Dependency

Authors

Maintainers

Sources

vif-0.0.1.beta3.tbz
sha256=4da176d4f20bc5d2dc6f8960ece626c7815f5281680bbf99af3487bbb4419c2c
sha512=e225e6b977f92a243e900b4b6a728ef07b9469e17557c21457fe24e21c06be9bb176bc5f5847df64c702efb8f86538a0dac7bde09d8a68193c348aa3eec62748

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