Skip to content

Latest commit

 

History

History
47 lines (45 loc) · 4.92 KB

File metadata and controls

47 lines (45 loc) · 4.92 KB

Validators

This table features all available validators.

Name Description
Any[T] Any accepts any value of T.
Zero[T] Zero accepts all zero values.

The zero value is:
- 0 for numeric types,
- false for the boolean type, and
- "" (the empty string) for strings.

See [NonZero].
NonZero[T] NonZero accepts all non-zero values.

The zero value is:
- 0 for numeric types,
- false for the boolean type, and
- "" (the empty string) for strings.

See [Zero].
Positive[T] Positive accepts all positive real numbers excluding zero.

See [Positive0] for zero including variant.
Negative[T] Negative accepts all negative real numbers excluding zero.

See [Negative0] for zero including variant.
Positive0[T] Positive0 accepts all positive real numbers including zero.

See [Positive] for zero excluding variant.
Negative0[T] Negative0 accepts all negative real numbers including zero.

See [Negative] for zero excluding variant.
Even[T] Even accepts integers divisible by two.
Odd[T] Odd accepts integers not divisible by two.
Email[T] Email accepts a single RFC 5322 address, e.g. "Barry Gibbs bg@example.com".
URL[T] URL accepts a single url.
The url may be relative (a path, without a host) or absolute (starting with a scheme).

See also [HTTPURL].
HTTPURL[T] HTTPURL accepts a single http(s) url.

See also [URL].
IP[T] IP accepts an IP address.
The address can be in dotted decimal ("192.0.2.1"),
IPv6 ("2001:db8::68"), or IPv6 with a scoped addressing zone ("fe80::1cc0:3e8c:119f:c2e1%ens18").
IPV4[T] IPV4 accepts an IP V4 address (e.g. "192.0.2.1").
IPV6[T] IPV6 accepts an IP V6 address, including IPv4-mapped IPv6 addresses.
The address can be regular IPv6 ("2001:db8::68"), or IPv6 with
a scoped addressing zone ("fe80::1cc0:3e8c:119f:c2e1%ens18").
MAC[T] MAC accepts an IEEE 802 MAC-48, EUI-48, EUI-64, or a 20-octet IP over InfiniBand link-layer address.
CIDR[T] CIDR accepts CIDR notation IP address and prefix length,
like "192.0.2.0/24" or "2001:db8::/32", as defined in RFC 4632 and RFC 4291.
Base64[T] Base64 accepts valid base64 encoded strings.
Charset0[T, F] Charset0 accepts (possibly empty) text which contains only runes acceptable by filter.
See [Charset] for a non-empty variant.
Charset[T, F] Charset accepts non-empty text which contains only runes acceptable by filter.
See also [Charset0].
Latitude[T] Latitude accepts any number in the range [-90; 90].

See also [Longitude].
Longitude[T] Longitude accepts any number in the range [-180; 180].

See also [Latitude].
InPast[T] InFuture accepts any time after current timestamp.

See also [InPast].
InFuture[T] InFuture accepts any time after current timestamp.

See also [InPast].
Unique[S, T] Unique accepts a slice-like of unique values.

See [UniqueSlice] for a slice shortcut.
UniqueSlice[T] Unique accepts a slice of unique values.

See [Unique] for a more generic version.
NonEmpty[S, T] NonEmpty accepts a non-empty slice-like (len > 0).

See [NonEmptySlice] for a slice shortcut.
NonEmptySlice[T] NonEmptySlice accepts a non-empty slice (len > 0).

See [NonEmpty] for a more generic version.
MIME[T] MIME accepts RFC 1521 mime type string.
UUID[T] UUID accepts a properly formatted UUID in one of the following formats:
- xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
JSON[T] JSON accepts valid json encoded text.
CountryAlpha2[T] CountryAlpha2 accepts case-insensitive ISO 3166 2-letter country code.
CountryAlpha3[T] CountryAlpha3 accepts case-insensitive ISO 3166 3-letter country code.
CountryAlpha[T] CountryAlpha accepts either [CountryAlpha2] or [CountryAlpha3].
CurrencyAlpha[T] CurrencyAlpha accepts case-insensitive ISO 4217 alphabetic currency code.
LangAlpha2[T] LangAlpha2 accepts case-insensitive ISO 639 2-letter language code.
LangAlpha3[T] LangAlpha3 accepts case-insensitive ISO 639 3-letter language code.
LangAlpha[T] LangAlpha accepts either [LangAlpha2] or [LangAlpha3].
And[T, A, B] And is a meta validator that combines other validators with AND operator.
Validators are called in the same order as specified by type parameters.

See also [Or], [Not].
Or[T, A, B] Or is a meta validator that combines other validators with OR operator.
Validators are called in the same order as type parameters.

See also [And], [Not].
Not[T, V] Not is a meta validator that inverts given validator.

See also [And], [Or].