Module Sch_schema_constraint_fmt

type t = [
  1. | `Email
  2. | `Idn_email
  3. | `Hostname
  4. | `Uri
  5. | `Uuid
  6. | `Date
  7. | `Date_time
  8. | `Time
  9. | `Duration
  10. | `Ipv4
  11. | `Ipv6
  12. | `Custom of string
]
val email_re : Js.Re.t
val idn_email_re : Js.Re.t
val date_re : Js.Re.t
val time_re : Js.Re.t
val datetime_re : Js.Re.t
val extended_iso_8601_duration_re : Js.Re.t
val uuid_re : Js.Re.t
val validate_regex : string -> (unit, string list) Stdlib.result
val pattern : string -> string -> (string, string list) Stdlib.result
val ipv4_re : Js.Re.t

this is probably not the best, but it work for now

val validate_ipv4 : string -> (string, string list) Stdlib.result
val ipv6_re : Js.Re.t
val validate_ipv6 : string -> (string, string list) Stdlib.result
val validate_hostname : 'a -> ('a, 'b) Stdlib.result

TODO: implement hostname validation

val validate_email : string -> (string, string list) Stdlib.result
val validate_idn_email : string -> (string, string list) Stdlib.result
val is_leap_year : int -> bool
val days_in_month : int -> int -> int
val int_of_float : float -> int
val validate_date : Js.String.t -> (Js.String.t, string list) Stdlib.result
val array_index : index:int -> 'a array -> 'a option
val match_at : index:int -> 'a Js.Nullable.t array -> 'a option
val validate_time : string -> (string, string list) Stdlib.result
val validate_datetime : Js.String.t -> (Js.String.t, string list) Stdlib.result
val validate_duration : string -> (string, string list) Stdlib.result
val uri_re : Js.Re.t
val validate_uri : string -> (string, string list) Stdlib.result
val validate_uuid : string -> (string, string list) Stdlib.result
val validate : t -> string -> (string, string list) Stdlib.result
val to_string : t -> string