arg

package module
v0.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 1, 2023 License: MIT Imports: 12 Imported by: 3

README

arg

Package implements functions to validate arguments.

Synopsis

func main() {
	var (
		host     string = "127.0.0.1"
		status   string = "connecting"
		requests int64  = 99
	)

	err := arg.Assert(
		arg.Strings.Assert(host, "host",
			arg.Strings.NonEmpty,
		),
		arg.Strings.Assert(status, "status",
			arg.Strings.NonEmpty,
			arg.Strings.In("connecting", "closed", "aborted"),
		),
		arg.Ints.Assert(requests, "requrests",
			arg.Ints.NonNegativeInteger,
		),
	)
	fmt.Println(err)
	// Output: <nil>
}

Documentation

Overview

Package arg implements functions to validate arguments. * * Synopsis: * var ( * host string = "127.0.0.1" * status string = "connecting" * requests int64 = 99 * ) * * err := arg.Assert( * arg.Strings.Assert(host, "host", * arg.Strings.NonEmpty, * ), * arg.Strings.Assert(status, "status", * arg.Strings.NonEmpty, * arg.Strings.In("connecting", "closed", "aborted"), * ), * arg.Ints.Assert(requests, "requrests", * arg.Ints.NonNegativeInteger, * ), * ) * fmt.Println(err) // Output: <nil> * * The Strings, Floats, Ints, Numbers, Values also offer `Assertor()`: * * err := arg.Strings.Assertor(host, "host"). * Assert( * arg.Strings.NonEmpty, * ) * * is preferable to * * err := arg.Strings.Assert(host, "host", * arg.Strings.NonEmpty, * )

Example
package main

import (
	"fmt"

	"github.com/Bofry/arg"
)

func main() {
	var (
		host     string = "127.0.0.1"
		status   string = "connecting"
		requests int64  = 99
	)

	err := arg.Assert(
		arg.Strings.Assert(host, "host",
			arg.Strings.NonEmpty,
		),
		arg.Strings.Assert(status, "status",
			arg.Strings.NonEmpty,
			arg.Strings.In("connecting", "closed", "aborted"),
		),
		arg.Ints.Assert(requests, "requrests",
			arg.Ints.NonNegativeInteger,
		),
	)
	fmt.Println(err)
}
Output:

<nil>

Index

Examples

Constants

View Source
const (
	Ints      = IntAssertion("")
	UInts     = UIntAssertion("")
	Floats    = FloatAssertion("")
	Numbers   = NumberAssertion("")
	Strings   = StringAssertion("")
	Slices    = SliceAssertion("")
	Values    = ValueAssertion("")
	IPs       = IPAssertion("")
	Times     = TimeAssertion("")
	Durations = DurationAssertion("")

	IntPtr      = IntPtrAssertion("")
	UIntPtr     = UIntPtrAssertion("")
	FloatPtr    = FloatPtrAssertion("")
	NumberPtr   = NumberPtrAssertion("")
	StringPtr   = StringPtrAssertion("")
	TimePtr     = TimePtrAssertion("")
	DurationPtr = DurationPtrAssertion("")
)
View Source
const (
	EmailPattern = `^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$`
)

Variables

This section is empty.

Functions

func Args added in v0.2.3

func Args(target interface{}, opts ...content.ProcessorOption) *content.Processor

func Assert

func Assert(errs ...error) error

func AssertFunc added in v0.2.3

func AssertFunc(functions ...func() error) error

func ThrowError

func ThrowError(name, reason string) error

Types

type DurationAssertion added in v0.2.1

type DurationAssertion string

func (DurationAssertion) Assert added in v0.2.1

func (DurationAssertion) Assert(v time.Duration, name string, validators ...DurationValidator) error

func (DurationAssertion) Assertor added in v0.2.1

func (DurationAssertion) BetweenRange added in v0.2.1

func (DurationAssertion) BetweenRange(min, max time.Duration) DurationValidator

BetweenRange checks if given time.Duration is between the specified minimum and maximum values (both inclusive).

func (DurationAssertion) BetweenRangeByString added in v0.2.1

func (DurationAssertion) BetweenRangeByString(min, max string) DurationValidator

BetweenRange checks if given time.Duration is between the specified minimum and maximum values (both inclusive).

func (DurationAssertion) GreaterOrEqual added in v0.2.1

func (DurationAssertion) GreaterOrEqual(boundary time.Duration) DurationValidator

func (DurationAssertion) GreaterOrEqualByString added in v0.2.1

func (DurationAssertion) GreaterOrEqualByString(durationBoundary string) DurationValidator

func (DurationAssertion) LessOrEqual added in v0.2.1

func (DurationAssertion) LessOrEqual(boundary time.Duration) DurationValidator

func (DurationAssertion) LessOrEqualByString added in v0.2.1

func (DurationAssertion) LessOrEqualByString(durationBoundary string) DurationValidator

func (DurationAssertion) Must added in v0.2.1

func (DurationAssertion) NonNegative added in v0.2.1

func (DurationAssertion) NonNegative(v time.Duration, name string) error

func (DurationAssertion) NonZero added in v0.2.1

func (DurationAssertion) NonZero(v time.Duration, name string) error

type DurationAssertor added in v0.2.1

type DurationAssertor struct {
	// contains filtered or unexported fields
}

func (*DurationAssertor) Assert added in v0.2.1

func (asr *DurationAssertor) Assert(validators ...DurationValidator) error

type DurationPredicate added in v0.2.1

type DurationPredicate func(v time.Duration) bool

type DurationPtrAssertion added in v0.2.1

type DurationPtrAssertion string

func (DurationPtrAssertion) Assert added in v0.2.1

func (DurationPtrAssertion) Assert(v *time.Duration, name string, validators ...DurationPtrValidator) error

func (DurationPtrAssertion) Assertor added in v0.2.1

func (DurationPtrAssertion) BetweenRange added in v0.2.1

func (DurationPtrAssertion) BetweenRange(min, max time.Duration) DurationPtrValidator

BetweenRange checks if given time.Duration is between the specified minimum and maximum values (both inclusive).

func (DurationPtrAssertion) GreaterOrEqual added in v0.2.1

func (DurationPtrAssertion) GreaterOrEqual(boundary time.Duration) DurationPtrValidator

func (DurationPtrAssertion) LessOrEqual added in v0.2.1

func (DurationPtrAssertion) Must added in v0.2.1

func (DurationPtrAssertion) MustNil added in v0.2.3

func (DurationPtrAssertion) MustNil(v *time.Duration, name string) error

func (DurationPtrAssertion) NonNegative added in v0.2.1

func (DurationPtrAssertion) NonNegative(ptr *time.Duration, name string) error

func (DurationPtrAssertion) NonZero added in v0.2.1

func (DurationPtrAssertion) NonZero(ptr *time.Duration, name string) error

func (DurationPtrAssertion) NotNil added in v0.2.1

func (DurationPtrAssertion) NotNil(v *time.Duration, name string) error

type DurationPtrAssertor added in v0.2.1

type DurationPtrAssertor struct {
	// contains filtered or unexported fields
}

func (*DurationPtrAssertor) Assert added in v0.2.1

func (asr *DurationPtrAssertor) Assert(validators ...DurationPtrValidator) error

type DurationPtrPredicate added in v0.2.1

type DurationPtrPredicate func(v *time.Duration) bool

type DurationPtrValidator added in v0.2.1

type DurationPtrValidator func(v *time.Duration, name string) error

type DurationValidator added in v0.2.1

type DurationValidator func(v time.Duration, name string) error

func (DurationValidator) AssertPtr added in v0.2.1

func (fn DurationValidator) AssertPtr(v *time.Duration, name string) error

func (DurationValidator) AssertValue added in v0.2.1

func (fn DurationValidator) AssertValue(v interface{}, name string) error

type FloatAssertion

type FloatAssertion string

func (FloatAssertion) Assert

func (FloatAssertion) Assert(v float64, name string, validators ...FloatValidator) error

func (FloatAssertion) Assertor

func (FloatAssertion) Assertor(v float64, name string) *FloatAssertor

func (FloatAssertion) BetweenRange

func (FloatAssertion) BetweenRange(min, max float64) FloatValidator

BetweenRange checks if given number is between the specified minimum and maximum values (both inclusive).

func (FloatAssertion) Greater

func (FloatAssertion) Greater(comparand float64) FloatValidator

func (FloatAssertion) GreaterOrEqual

func (FloatAssertion) GreaterOrEqual(comparand float64) FloatValidator

func (FloatAssertion) Less

func (FloatAssertion) Less(comparand float64) FloatValidator

func (FloatAssertion) LessOrEqual

func (FloatAssertion) LessOrEqual(comparand float64) FloatValidator

func (FloatAssertion) Must

Example
package main

import (
	"fmt"
	"math"

	"github.com/Bofry/arg"
)

func main() {
	var v float64 = 4.9001
	err := arg.Floats.Assert(v, "v",
		arg.Floats.Must(
			func(v float64) bool {
				return math.Round(v) == 5
			}),
	)

	fmt.Println(err)
}
Output:

<nil>

func (FloatAssertion) NonNanNorInf

func (FloatAssertion) NonNanNorInf(v float64, name string) error

func (FloatAssertion) NonNegativeNumber

func (FloatAssertion) NonNegativeNumber(v float64, name string) error

func (FloatAssertion) NonZero

func (FloatAssertion) NonZero(v float64, name string) error

type FloatAssertor

type FloatAssertor struct {
	// contains filtered or unexported fields
}

func (*FloatAssertor) Assert

func (asr *FloatAssertor) Assert(validators ...FloatValidator) error

type FloatPredicate

type FloatPredicate func(v float64) bool

type FloatPtrAssertion added in v0.2.1

type FloatPtrAssertion string

func (FloatPtrAssertion) Assert added in v0.2.1

func (FloatPtrAssertion) Assert(v *float64, name string, validators ...FloatPtrValidator) error

func (FloatPtrAssertion) Assertor added in v0.2.1

func (FloatPtrAssertion) Assertor(v *float64, name string) *FloatPtrAssertor

func (FloatPtrAssertion) BetweenRange added in v0.2.1

func (FloatPtrAssertion) BetweenRange(min, max float64) FloatPtrValidator

BetweenRange checks if given number is between the specified minimum and maximum values (both inclusive).

func (FloatPtrAssertion) Greater added in v0.2.1

func (FloatPtrAssertion) Greater(comparand float64) FloatPtrValidator

func (FloatPtrAssertion) GreaterOrEqual added in v0.2.1

func (FloatPtrAssertion) GreaterOrEqual(comparand float64) FloatPtrValidator

func (FloatPtrAssertion) Less added in v0.2.1

func (FloatPtrAssertion) LessOrEqual added in v0.2.1

func (FloatPtrAssertion) LessOrEqual(comparand float64) FloatPtrValidator

func (FloatPtrAssertion) Must added in v0.2.1

func (FloatPtrAssertion) MustNil added in v0.2.3

func (FloatPtrAssertion) MustNil(v *float64, name string) error

func (FloatPtrAssertion) NonNanNorInf added in v0.2.1

func (FloatPtrAssertion) NonNanNorInf(ptr *float64, name string) error

func (FloatPtrAssertion) NonNegativeNumber added in v0.2.1

func (FloatPtrAssertion) NonNegativeNumber(ptr *float64, name string) error

func (FloatPtrAssertion) NonZero added in v0.2.1

func (FloatPtrAssertion) NonZero(ptr *float64, name string) error

func (FloatPtrAssertion) NotNil added in v0.2.1

func (FloatPtrAssertion) NotNil(v *float64, name string) error

type FloatPtrAssertor added in v0.2.1

type FloatPtrAssertor struct {
	// contains filtered or unexported fields
}

func (*FloatPtrAssertor) Assert added in v0.2.1

func (asr *FloatPtrAssertor) Assert(validators ...FloatPtrValidator) error

type FloatPtrPredicate added in v0.2.1

type FloatPtrPredicate func(v *float64) bool

type FloatPtrValidator added in v0.2.1

type FloatPtrValidator func(v *float64, name string) error

type FloatValidator

type FloatValidator func(v float64, name string) error

func (FloatValidator) AssertNumber

func (fn FloatValidator) AssertNumber(v Number, name string) error

func (FloatValidator) AssertPtr added in v0.2.1

func (fn FloatValidator) AssertPtr(v *float64, name string) error

func (FloatValidator) AssertValue

func (fn FloatValidator) AssertValue(v interface{}, name string) error

type IP

type IP = net.IP

type IPAssertion

type IPAssertion string

func (IPAssertion) Assert

func (IPAssertion) Assert(v IP, name string, validators ...IPValidator) error

func (IPAssertion) Assertor

func (IPAssertion) Assertor(v IP, name string) *IPAssertor

func (IPAssertion) BelongToAny

func (IPAssertion) BelongToAny(cidrs ...string) IPValidator

BelongTo checks whether the ip is belong to the specified networks.

func (IPAssertion) GlobalUnicast

func (IPAssertion) GlobalUnicast(v IP, name string) error

GlobalUnicast checks whether ip is a global unicast address.

The identification of global unicast addresses uses address type identification as defined in RFC 1122, RFC 4632 and RFC 4291 with the expection of IPv4 directed broadcast addresses. It returns true even if ip is in IPv4 private address space or local IPv6 unicast address space.

func (IPAssertion) InterfaceLocalMulticast

func (IPAssertion) InterfaceLocalMulticast(v IP, name string) error

InterfaceLocalMulticast checks whether ip is an interface-local multicast address.

func (IPAssertion) IsValid

func (IPAssertion) IsValid(v IP, name string) error

func (IPAssertion) LinkLocalMulticast

func (IPAssertion) LinkLocalMulticast(v IP, name string) error

LinkLocalMulticast checks whether ip is a link-local multicast address.

func (IPAssertion) LinkLocalUnicast

func (IPAssertion) LinkLocalUnicast(v IP, name string) error

LinkLocalUnicast checks whether ip is a link-local unicast address.

func (IPAssertion) Loopback

func (IPAssertion) Loopback(v IP, name string) error

Loopback checks whether ip is a loopback address.

func (IPAssertion) Multicast

func (IPAssertion) Multicast(v IP, name string) error

Multicast checks whether ip is a multicast address.

func (IPAssertion) Must

func (IPAssertion) NotBelongToAny

func (IPAssertion) NotBelongToAny(cidrs ...string) IPValidator

func (IPAssertion) NotGlobalUnicast

func (IPAssertion) NotGlobalUnicast(v IP, name string) error

func (IPAssertion) NotInterfaceLocalMulticast

func (IPAssertion) NotInterfaceLocalMulticast(v IP, name string) error

func (IPAssertion) NotLinkLocalMulticast

func (IPAssertion) NotLinkLocalMulticast(v IP, name string) error

func (IPAssertion) NotLinkLocalUnicast

func (IPAssertion) NotLinkLocalUnicast(v IP, name string) error

func (IPAssertion) NotLoopback

func (IPAssertion) NotLoopback(v IP, name string) error

func (IPAssertion) NotMulticast

func (IPAssertion) NotMulticast(v IP, name string) error

func (IPAssertion) NotPrivate

func (IPAssertion) NotPrivate(v IP, name string) error

func (IPAssertion) NotUnspecified

func (IPAssertion) NotUnspecified(v IP, name string) error

func (IPAssertion) Private

func (IPAssertion) Private(v IP, name string) error

Private checks whether ip is a private address, according to RFC 1918 (IPv4 addresses) and RFC 4193 (IPv6 addresses).

func (IPAssertion) Unspecified

func (IPAssertion) Unspecified(v IP, name string) error

Unspecified checks whether ip is an unspecified address, either the IPv4 address "0.0.0.0" or the IPv6 address "::".

type IPAssertor

type IPAssertor struct {
	// contains filtered or unexported fields
}

func (*IPAssertor) Assert

func (asr *IPAssertor) Assert(validators ...IPValidator) error

type IPPredicate

type IPPredicate func(v IP) bool

type IPValidator

type IPValidator func(v IP, name string) error

func (IPValidator) AssertString

func (fn IPValidator) AssertString(v string, name string) error

func (IPValidator) AssertValue

func (fn IPValidator) AssertValue(v interface{}, name string) error

type IntAssertion

type IntAssertion string

func (IntAssertion) Assert

func (IntAssertion) Assert(v int64, name string, validators ...IntValidator) error

func (IntAssertion) Assertor

func (IntAssertion) Assertor(v int64, name string) *IntAssertor

func (IntAssertion) BetweenRange

func (IntAssertion) BetweenRange(min, max int64) IntValidator

BetweenRange checks if given integer is between the specified minimum and maximum values (both inclusive).

func (IntAssertion) GreaterOrEqual

func (IntAssertion) GreaterOrEqual(boundary int64) IntValidator

func (IntAssertion) In

func (IntAssertion) In(values ...int64) IntValidator

func (IntAssertion) LessOrEqual

func (IntAssertion) LessOrEqual(boundary int64) IntValidator

func (IntAssertion) Must

Example
package main

import (
	"fmt"

	"github.com/Bofry/arg"
)

func main() {
	var v int64 = 6
	err := arg.Ints.Assert(v, "v",
		arg.Ints.Must(
			func(v int64) bool {
				return (v & 0x01) == 0
			}),
	)

	fmt.Println(err)
}
Output:

<nil>

func (IntAssertion) NonNegativeInteger

func (IntAssertion) NonNegativeInteger(v int64, name string) error

func (IntAssertion) NonZero

func (IntAssertion) NonZero(v int64, name string) error

func (IntAssertion) NotIn

func (IntAssertion) NotIn(values ...int64) IntValidator

type IntAssertor

type IntAssertor struct {
	// contains filtered or unexported fields
}

func (*IntAssertor) Assert

func (asr *IntAssertor) Assert(validators ...IntValidator) error

type IntPredicate

type IntPredicate func(v int64) bool

type IntPtrAssertion added in v0.2.1

type IntPtrAssertion string

func (IntPtrAssertion) Assert added in v0.2.1

func (IntPtrAssertion) Assert(v *int64, name string, validators ...IntPtrValidator) error

func (IntPtrAssertion) Assertor added in v0.2.1

func (IntPtrAssertion) Assertor(v *int64, name string) *IntPtrAssertor

func (IntPtrAssertion) BetweenRange added in v0.2.1

func (IntPtrAssertion) BetweenRange(min, max int64) IntPtrValidator

BetweenRange checks if given integer is between the specified minimum and maximum values (both inclusive).

func (IntPtrAssertion) GreaterOrEqual added in v0.2.1

func (IntPtrAssertion) GreaterOrEqual(boundary int64) IntPtrValidator

func (IntPtrAssertion) In added in v0.2.1

func (IntPtrAssertion) In(values ...int64) IntPtrValidator

func (IntPtrAssertion) LessOrEqual added in v0.2.1

func (IntPtrAssertion) LessOrEqual(boundary int64) IntPtrValidator

func (IntPtrAssertion) Must added in v0.2.1

func (IntPtrAssertion) MustNil added in v0.2.3

func (IntPtrAssertion) MustNil(v *int64, name string) error

func (IntPtrAssertion) NonNegativeInteger added in v0.2.1

func (IntPtrAssertion) NonNegativeInteger(ptr *int64, name string) error

func (IntPtrAssertion) NonZero added in v0.2.1

func (IntPtrAssertion) NonZero(ptr *int64, name string) error

func (IntPtrAssertion) NotIn added in v0.2.1

func (IntPtrAssertion) NotIn(values ...int64) IntPtrValidator

func (IntPtrAssertion) NotNil added in v0.2.1

func (IntPtrAssertion) NotNil(v *int64, name string) error

type IntPtrAssertor added in v0.2.1

type IntPtrAssertor struct {
	// contains filtered or unexported fields
}

func (*IntPtrAssertor) Assert added in v0.2.1

func (asr *IntPtrAssertor) Assert(validators ...IntPtrValidator) error

type IntPtrPredicate added in v0.2.1

type IntPtrPredicate func(v *int64) bool

type IntPtrValidator added in v0.2.1

type IntPtrValidator func(v *int64, name string) error

type IntValidator

type IntValidator func(v int64, name string) error

func (IntValidator) AssertNumber

func (fn IntValidator) AssertNumber(v Number, name string) error

func (IntValidator) AssertPtr added in v0.2.1

func (fn IntValidator) AssertPtr(v *int64, name string) error

func (IntValidator) AssertValue

func (fn IntValidator) AssertValue(v interface{}, name string) error

type InvalidArgumentError

type InvalidArgumentError struct {
	Name   string
	Reason string
	Err    error
}

func (*InvalidArgumentError) Error

func (e *InvalidArgumentError) Error() string

func (*InvalidArgumentError) Unwrap

func (e *InvalidArgumentError) Unwrap() error

Unwrap returns the underlying error.

type Number

type Number = json.Number

type NumberAssertion

type NumberAssertion string

func (NumberAssertion) Assert

func (NumberAssertion) Assert(v Number, name string, validators ...NumberValidator) error

func (NumberAssertion) Assertor

func (NumberAssertion) Assertor(v Number, name string) *NumberAssertor

func (NumberAssertion) BetweenRange

func (NumberAssertion) BetweenRange(min, max float64) NumberValidator

BetweenRange checks if given number is between the specified minimum and maximum values (both inclusive).

func (NumberAssertion) Greater

func (NumberAssertion) Greater(comparand float64) NumberValidator

func (NumberAssertion) GreaterOrEqual

func (NumberAssertion) GreaterOrEqual(comparand float64) NumberValidator

func (NumberAssertion) IsNumber

func (NumberAssertion) IsNumber(v Number, name string) error

func (NumberAssertion) Less

func (NumberAssertion) Less(comparand float64) NumberValidator

func (NumberAssertion) LessOrEqual

func (NumberAssertion) LessOrEqual(comparand float64) NumberValidator

func (NumberAssertion) Must

Example
package main

import (
	"fmt"

	"github.com/Bofry/arg"
)

func main() {
	var v arg.Number = "6"
	err := arg.Numbers.Assert(v, "v",
		arg.Numbers.Must(
			func(v arg.Number) bool {
				argv, err := v.Int64()
				if err != nil {
					return false
				}
				return (argv & 0x01) == 0
			}),
	)

	fmt.Println(err)
}
Output:

<nil>

func (NumberAssertion) MustFloat

func (NumberAssertion) MustInt

func (NumberAssertion) NonNanNorInf

func (NumberAssertion) NonNanNorInf(v Number, name string) error

func (NumberAssertion) NonNegativeNumber

func (NumberAssertion) NonNegativeNumber(v Number, name string) error

func (NumberAssertion) NonZero

func (NumberAssertion) NonZero(v Number, name string) error

func (NumberAssertion) NotIn

func (NumberAssertion) NotIn(values ...int64) NumberValidator

type NumberAssertor

type NumberAssertor struct {
	// contains filtered or unexported fields
}

func (*NumberAssertor) Assert

func (asr *NumberAssertor) Assert(validators ...NumberValidator) error

type NumberPredicate

type NumberPredicate func(v Number) bool

type NumberPtrAssertion added in v0.2.1

type NumberPtrAssertion string

func (NumberPtrAssertion) Assert added in v0.2.1

func (NumberPtrAssertion) Assert(v *Number, name string, validators ...NumberPtrValidator) error

func (NumberPtrAssertion) Assertor added in v0.2.1

func (NumberPtrAssertion) Assertor(v *Number, name string) *NumberPtrAssertor

func (NumberPtrAssertion) BetweenRange added in v0.2.1

func (NumberPtrAssertion) BetweenRange(min, max float64) NumberPtrValidator

BetweenRange checks if given number is between the specified minimum and maximum values (both inclusive).

func (NumberPtrAssertion) Greater added in v0.2.1

func (NumberPtrAssertion) Greater(comparand float64) NumberPtrValidator

func (NumberPtrAssertion) GreaterOrEqual added in v0.2.1

func (NumberPtrAssertion) GreaterOrEqual(comparand float64) NumberPtrValidator

func (NumberPtrAssertion) IsNumber added in v0.2.1

func (NumberPtrAssertion) IsNumber(ptr *Number, name string) error

func (NumberPtrAssertion) Less added in v0.2.1

func (NumberPtrAssertion) LessOrEqual added in v0.2.1

func (NumberPtrAssertion) LessOrEqual(comparand float64) NumberPtrValidator

func (NumberPtrAssertion) Must added in v0.2.1

func (NumberPtrAssertion) MustFloat added in v0.2.1

func (NumberPtrAssertion) MustInt added in v0.2.1

func (NumberPtrAssertion) MustNil added in v0.2.3

func (NumberPtrAssertion) MustNil(v *Number, name string) error

func (NumberPtrAssertion) NonNanNorInf added in v0.2.1

func (NumberPtrAssertion) NonNanNorInf(ptr *Number, name string) error

func (NumberPtrAssertion) NonNegativeNumber added in v0.2.1

func (NumberPtrAssertion) NonNegativeNumber(ptr *Number, name string) error

func (NumberPtrAssertion) NonZero added in v0.2.1

func (NumberPtrAssertion) NonZero(ptr *Number, name string) error

func (NumberPtrAssertion) NotIn added in v0.2.1

func (NumberPtrAssertion) NotIn(values ...int64) NumberPtrValidator

func (NumberPtrAssertion) NotNil added in v0.2.1

func (NumberPtrAssertion) NotNil(v *Number, name string) error

type NumberPtrAssertor added in v0.2.1

type NumberPtrAssertor struct {
	// contains filtered or unexported fields
}

func (*NumberPtrAssertor) Assert added in v0.2.1

func (asr *NumberPtrAssertor) Assert(validators ...NumberPtrValidator) error

type NumberPtrPredicate added in v0.2.1

type NumberPtrPredicate func(v *Number) bool

type NumberPtrValidator added in v0.2.1

type NumberPtrValidator func(v *Number, name string) error

type NumberValidator

type NumberValidator func(v Number, name string) error

func (NumberValidator) AssertPtr added in v0.2.1

func (fn NumberValidator) AssertPtr(v *Number, name string) error

func (NumberValidator) AssertValue added in v0.2.1

func (fn NumberValidator) AssertValue(v interface{}, name string) error

type SliceAssertion

type SliceAssertion string

func (SliceAssertion) NonEmpty

func (SliceAssertion) NonEmpty(v interface{}, name string) error

type StringAssertion

type StringAssertion string

func (StringAssertion) Assert

func (StringAssertion) Assert(v string, name string, validators ...StringValidator) error

func (StringAssertion) Assertor

func (StringAssertion) Assertor(v string, name string) *StringAssertor

func (StringAssertion) In

func (StringAssertion) In(values ...string) StringValidator

func (StringAssertion) MatchAny

func (StringAssertion) MatchAny(patterns ...string) StringValidator

MatchAny checks if given string match any one from specified patterns.

Example
package main

import (
	"fmt"

	"github.com/Bofry/arg"
)

func main() {
	var v string = "demo@mail.com"
	err := arg.Strings.Assert(v, "v",
		arg.Strings.MatchAny(
			arg.EmailPattern,
		),
	)

	fmt.Println(err)
}
Output:

<nil>

func (StringAssertion) MaxLength

func (StringAssertion) MaxLength(size int) StringValidator

func (StringAssertion) MinLength

func (StringAssertion) MinLength(size int) StringValidator

func (StringAssertion) Must

Must checks if the given string is evaluated to true by specified predicate.

Example
package main

import (
	"fmt"
	"strings"

	"github.com/Bofry/arg"
)

func main() {
	var v string = "ENV_FOO"
	err := arg.Strings.Assert(v, "v",
		arg.Strings.Must(
			func(v string) bool {
				return strings.HasPrefix(v, "ENV_")
			}),
	)

	fmt.Println(err)
}
Output:

<nil>

func (StringAssertion) NonEmpty

func (StringAssertion) NonEmpty(v string, name string) error

type StringAssertor

type StringAssertor struct {
	// contains filtered or unexported fields
}

func (*StringAssertor) Assert

func (asr *StringAssertor) Assert(validators ...StringValidator) error

type StringPredicate

type StringPredicate func(v string) bool

type StringPtrAssertion added in v0.2.1

type StringPtrAssertion string

func (StringPtrAssertion) Assert added in v0.2.1

func (StringPtrAssertion) Assert(v *string, name string, validators ...StringPtrValidator) error

func (StringPtrAssertion) Assertor added in v0.2.1

func (StringPtrAssertion) Assertor(v *string, name string) *StringPtrAssertor

func (StringPtrAssertion) In added in v0.2.1

func (StringPtrAssertion) MatchAny added in v0.2.1

func (StringPtrAssertion) MatchAny(patterns ...string) StringPtrValidator

MatchAny checks if given string match any one from specified patterns.

func (StringPtrAssertion) MaxLength added in v0.2.1

func (StringPtrAssertion) MaxLength(size int) StringPtrValidator

func (StringPtrAssertion) MinLength added in v0.2.1

func (StringPtrAssertion) MinLength(size int) StringPtrValidator

func (StringPtrAssertion) Must added in v0.2.1

Must checks if the given string is evaluated to true by specified predicate.

func (StringPtrAssertion) MustNil added in v0.2.3

func (StringPtrAssertion) MustNil(v *string, name string) error

func (StringPtrAssertion) NonEmpty added in v0.2.1

func (StringPtrAssertion) NonEmpty(ptr *string, name string) error

func (StringPtrAssertion) NotNil added in v0.2.1

func (StringPtrAssertion) NotNil(v *string, name string) error

type StringPtrAssertor added in v0.2.1

type StringPtrAssertor struct {
	// contains filtered or unexported fields
}

func (*StringPtrAssertor) Assert added in v0.2.1

func (asr *StringPtrAssertor) Assert(validators ...StringPtrValidator) error

type StringPtrPredicate added in v0.2.1

type StringPtrPredicate func(v *string) bool

type StringPtrValidator added in v0.2.1

type StringPtrValidator func(v *string, name string) error

type StringValidator

type StringValidator func(v string, name string) error

func (StringValidator) AssertNumber

func (fn StringValidator) AssertNumber(v Number, name string) error

func (StringValidator) AssertPtr added in v0.2.1

func (fn StringValidator) AssertPtr(v *string, name string) error

func (StringValidator) AssertValue

func (fn StringValidator) AssertValue(v interface{}, name string) error

type TimeAssertion added in v0.2.1

type TimeAssertion string

func (TimeAssertion) AfterOrEqual added in v0.2.1

func (TimeAssertion) AfterOrEqual(boundary time.Time) TimeValidator

func (TimeAssertion) Assert added in v0.2.1

func (TimeAssertion) Assert(v time.Time, name string, validators ...TimeValidator) error

func (TimeAssertion) Assertor added in v0.2.1

func (TimeAssertion) Assertor(v time.Time, name string) *TimeAssertor

func (TimeAssertion) BeforeOrEqual added in v0.2.1

func (TimeAssertion) BeforeOrEqual(boundary time.Time) TimeValidator

func (TimeAssertion) BetweenRange added in v0.2.1

func (TimeAssertion) BetweenRange(min, max time.Time) TimeValidator

BetweenRange checks if given time.Time is between the specified minimum and maximum values (both inclusive).

func (TimeAssertion) InWeekday added in v0.2.1

func (TimeAssertion) InWeekday(values ...time.Weekday) TimeValidator

func (TimeAssertion) IsUTC added in v0.2.1

func (TimeAssertion) IsUTC(v time.Time, name string) error

func (TimeAssertion) Must added in v0.2.1

func (TimeAssertion) NonZero added in v0.2.1

func (TimeAssertion) NonZero(v time.Time, name string) error

func (TimeAssertion) NotInWeekday added in v0.2.1

func (TimeAssertion) NotInWeekday(values ...time.Weekday) TimeValidator

type TimeAssertor added in v0.2.1

type TimeAssertor struct {
	// contains filtered or unexported fields
}

func (*TimeAssertor) Assert added in v0.2.1

func (asr *TimeAssertor) Assert(validators ...TimeValidator) error

type TimePredicate added in v0.2.1

type TimePredicate func(v time.Time) bool

type TimePtrAssertion added in v0.2.1

type TimePtrAssertion string

func (TimePtrAssertion) AfterOrEqual added in v0.2.1

func (TimePtrAssertion) AfterOrEqual(boundary time.Time) TimePtrValidator

func (TimePtrAssertion) Assert added in v0.2.1

func (TimePtrAssertion) Assert(v *time.Time, name string, validators ...TimePtrValidator) error

func (TimePtrAssertion) Assertor added in v0.2.1

func (TimePtrAssertion) Assertor(v *time.Time, name string) *TimePtrAssertor

func (TimePtrAssertion) BeforeOrEqual added in v0.2.1

func (TimePtrAssertion) BeforeOrEqual(boundary time.Time) TimePtrValidator

func (TimePtrAssertion) BetweenRange added in v0.2.1

func (TimePtrAssertion) BetweenRange(min, max time.Time) TimePtrValidator

BetweenRange checks if given time.TIme is between the specified minimum and maximum values (both inclusive).

func (TimePtrAssertion) InWeekday added in v0.2.1

func (TimePtrAssertion) InWeekday(values ...time.Weekday) TimePtrValidator

func (TimePtrAssertion) IsUTC added in v0.2.1

func (TimePtrAssertion) IsUTC(ptr *time.Time, name string) error

func (TimePtrAssertion) Must added in v0.2.1

func (TimePtrAssertion) MustNil added in v0.2.3

func (TimePtrAssertion) MustNil(v *time.Time, name string) error

func (TimePtrAssertion) NonZero added in v0.2.1

func (TimePtrAssertion) NonZero(ptr *time.Time, name string) error

func (TimePtrAssertion) NotInWeekday added in v0.2.1

func (TimePtrAssertion) NotInWeekday(values ...time.Weekday) TimePtrValidator

func (TimePtrAssertion) NotNil added in v0.2.1

func (TimePtrAssertion) NotNil(v *time.Time, name string) error

type TimePtrAssertor added in v0.2.1

type TimePtrAssertor struct {
	// contains filtered or unexported fields
}

func (*TimePtrAssertor) Assert added in v0.2.1

func (asr *TimePtrAssertor) Assert(validators ...TimePtrValidator) error

type TimePtrPredicate added in v0.2.1

type TimePtrPredicate func(v *time.Time) bool

type TimePtrValidator added in v0.2.1

type TimePtrValidator func(v *time.Time, name string) error

type TimeValidator added in v0.2.1

type TimeValidator func(v time.Time, name string) error

func (TimeValidator) AssertPtr added in v0.2.1

func (fn TimeValidator) AssertPtr(v *time.Time, name string) error

func (TimeValidator) AssertValue added in v0.2.1

func (fn TimeValidator) AssertValue(v interface{}, name string) error

type UIntAssertion

type UIntAssertion string

func (UIntAssertion) Assert

func (UIntAssertion) Assert(v uint64, name string, validators ...UIntValidator) error

func (UIntAssertion) Assertor

func (UIntAssertion) Assertor(v uint64, name string) *UIntAssertor

func (UIntAssertion) BetweenRange

func (UIntAssertion) BetweenRange(min, max uint64) UIntValidator

BetweenRange checks if given integer is between the specified minimum and maximum values (both inclusive).

func (UIntAssertion) GreaterOrEqual

func (UIntAssertion) GreaterOrEqual(boundary uint64) UIntValidator

func (UIntAssertion) In

func (UIntAssertion) In(values ...uint64) UIntValidator

func (UIntAssertion) LessOrEqual

func (UIntAssertion) LessOrEqual(boundary uint64) UIntValidator

func (UIntAssertion) Must

func (UIntAssertion) NonZero

func (UIntAssertion) NonZero(v uint64, name string) error

func (UIntAssertion) NotIn

func (UIntAssertion) NotIn(values ...uint64) UIntValidator

type UIntAssertor

type UIntAssertor struct {
	// contains filtered or unexported fields
}

func (*UIntAssertor) Assert

func (asr *UIntAssertor) Assert(validators ...UIntValidator) error

type UIntPredicate

type UIntPredicate func(v uint64) bool

type UIntPtrAssertion added in v0.2.1

type UIntPtrAssertion string

func (UIntPtrAssertion) Assert added in v0.2.1

func (UIntPtrAssertion) Assert(v *uint64, name string, validators ...UIntPtrValidator) error

func (UIntPtrAssertion) Assertor added in v0.2.1

func (UIntPtrAssertion) Assertor(v *uint64, name string) *UIntPtrAssertor

func (UIntPtrAssertion) BetweenRange added in v0.2.1

func (UIntPtrAssertion) BetweenRange(min, max uint64) UIntPtrValidator

BetweenRange checks if given integer is between the specified minimum and maximum values (both inclusive).

func (UIntPtrAssertion) GreaterOrEqual added in v0.2.1

func (UIntPtrAssertion) GreaterOrEqual(boundary uint64) UIntPtrValidator

func (UIntPtrAssertion) In added in v0.2.1

func (UIntPtrAssertion) LessOrEqual added in v0.2.1

func (UIntPtrAssertion) LessOrEqual(boundary uint64) UIntPtrValidator

func (UIntPtrAssertion) Must added in v0.2.1

func (UIntPtrAssertion) MustNil added in v0.2.3

func (UIntPtrAssertion) MustNil(v *uint64, name string) error

func (UIntPtrAssertion) NonZero added in v0.2.1

func (UIntPtrAssertion) NonZero(ptr *uint64, name string) error

func (UIntPtrAssertion) NotIn added in v0.2.1

func (UIntPtrAssertion) NotIn(values ...uint64) UIntPtrValidator

func (UIntPtrAssertion) NotNil added in v0.2.1

func (UIntPtrAssertion) NotNil(v *uint64, name string) error

type UIntPtrAssertor added in v0.2.1

type UIntPtrAssertor struct {
	// contains filtered or unexported fields
}

func (*UIntPtrAssertor) Assert added in v0.2.1

func (asr *UIntPtrAssertor) Assert(validators ...UIntPtrValidator) error

type UIntPtrPredicate added in v0.2.1

type UIntPtrPredicate func(v *uint64) bool

type UIntPtrValidator added in v0.2.1

type UIntPtrValidator func(v *uint64, name string) error

type UIntValidator

type UIntValidator func(v uint64, name string) error

func (UIntValidator) AssertNumber

func (fn UIntValidator) AssertNumber(v Number, name string) error

func (UIntValidator) AssertPtr added in v0.2.1

func (fn UIntValidator) AssertPtr(v *uint64, name string) error

func (UIntValidator) AssertValue

func (fn UIntValidator) AssertValue(v interface{}, name string) error

type Validatable added in v0.2.3

type Validatable = content.Validatable

type ValueAssertion

type ValueAssertion string

func (ValueAssertion) Assert

func (ValueAssertion) Assert(v interface{}, name string, validators ...ValueValidator) error

func (ValueAssertion) Assertor

func (ValueAssertion) Assertor(v interface{}, name string) *ValueAssertor

func (ValueAssertion) Must

func (ValueAssertion) MustNil added in v0.2.3

func (ValueAssertion) MustNil(v interface{}, name string) error

func (ValueAssertion) NotNil

func (ValueAssertion) NotNil(v interface{}, name string) error

type ValueAssertor

type ValueAssertor struct {
	// contains filtered or unexported fields
}

func (*ValueAssertor) Assert

func (asr *ValueAssertor) Assert(validators ...ValueValidator) error

type ValuePredicate

type ValuePredicate func(v interface{}) bool

type ValueValidator

type ValueValidator func(v interface{}, name string) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL