package validate

  1. Overview
  2. Docs
OCaml library enabling efficient data validation through PPX derivers and a suite of annotation-based validators

Install

Dune Dependency

Authors

Maintainers

Sources

validate-1.0.0.tbz
sha256=af5d77b4c0b861516f1499e5d4d5d55e8214f9871878bb801e579bf26ed5a089
sha512=349b65e41da8aa44da10d5b21da0f05fea4ffe75957f18d21d2140483dedefd04fa3f183fd60f1f75a3ac094f33510587eff551dc6b464b28b72eb916dad9461

doc/src/ppx_derive_validate/pats.ml.html

Source file pats.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
open Ppxlib
open Ast_helper

let var_pat ~loc name = Pat.var { txt = name; loc }

let n_element_tuple_pat ~prefix ~loc n =
  match n with
  | 0 -> Pat.construct { txt = Lident "()"; loc } None
  | 1 -> var_pat ~loc (Printf.sprintf "%s0" prefix)
  | _ ->
      Pat.tuple
        (List.init n (fun i -> var_pat ~loc (Printf.sprintf "%s%d" prefix i)))

let record_pat ~loc fields =
  let fields =
    List.map
      (fun name -> ({ txt = Lident name; loc }, Pat.var { txt = name; loc }))
      fields
  in
  Pat.record fields Closed
OCaml

Innovation. Community. Security.