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.1.0.tbz
sha256=830d3b1ac8cdacfca2877030dd0377e46115527e7963359537daa5897e563da4
sha512=3d681eff0948af42b0b9a7bcab789d00d45066c4efdc2a426925e15c16ad8568afd0024e98afe9320d41619813464aaf9a448712d7722955385f2cd3379c6cf5

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.