types

package
v0.31.1 Latest Latest
Warning

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

Go to latest
Published: Mar 16, 2021 License: AGPL-3.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetDurationValue added in v0.30.0

func GetDurationValue(v interface{}) (time.Duration, error)

GetDurationValue is a helper function that can convert a lot of different types to time.Duration.

TODO: move to a separate package and check for integer overflows?

func NullDecoder added in v0.22.0

func NullDecoder(f reflect.Type, t reflect.Type, data interface{}) (interface{}, error)

NullDecoder converts data with expected type f to a guregu/null value of equivalent type t. It returns an error if a type mismatch occurs.

func ParseExtendedDuration added in v0.27.0

func ParseExtendedDuration(data string) (result time.Duration, err error)

ParseExtendedDuration is a helper function that allows for string duration values containing days.

Types

type DNSConfig added in v0.29.0

type DNSConfig struct {
	// If positive, defines how long DNS lookups should be returned from the cache.
	TTL null.String `json:"ttl"`
	// Select specifies the strategy to use when picking a single IP if more than one is returned for a host name.
	Select NullDNSSelect `json:"select"`
	// Policy specifies how to handle returning of IPv4 or IPv6 addresses.
	Policy NullDNSPolicy `json:"policy"`
	// FIXME: Valid is unused and is only added to satisfy some logic in
	// lib.Options.ForEachSpecified(), otherwise it would panic with
	// `reflect: call of reflect.Value.Bool on zero Value`.
	Valid bool `json:"-"`
}

DNSConfig is the DNS resolver configuration.

func DefaultDNSConfig added in v0.29.0

func DefaultDNSConfig() DNSConfig

DefaultDNSConfig returns the default DNS configuration.

func (DNSConfig) String added in v0.29.0

func (c DNSConfig) String() string

String implements fmt.Stringer.

func (*DNSConfig) UnmarshalJSON added in v0.29.0

func (c *DNSConfig) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler.

func (*DNSConfig) UnmarshalText added in v0.29.0

func (c *DNSConfig) UnmarshalText(text []byte) error

UnmarshalText implements encoding.TextUnmarshaler.

type DNSPolicy added in v0.29.0

type DNSPolicy uint8

DNSPolicy specifies the preference for handling IP versions in DNS resolutions.

const (
	// DNSpreferIPv4 returns an IPv4 address if available, falling back to IPv6 otherwise.
	DNSpreferIPv4 DNSPolicy = iota + 1
	// DNSpreferIPv6 returns an IPv6 address if available, falling back to IPv4 otherwise.
	DNSpreferIPv6
	// DNSonlyIPv4 only returns an IPv4 address and the resolution will fail if no IPv4 address is found.
	DNSonlyIPv4
	// DNSonlyIPv6 only returns an IPv6 address and the resolution will fail if no IPv6 address is found.
	DNSonlyIPv6
	// DNSany returns any resolved address regardless of version.
	DNSany
)

These are lower camel cased since enumer doesn't support it as a transform option. See https://github.com/alvaroloes/enumer/pull/60 .

func DNSPolicyString added in v0.29.0

func DNSPolicyString(s string) (DNSPolicy, error)

DNSPolicyString retrieves an enum value from the enum constants string name. Throws an error if the param is not part of the enum.

func DNSPolicyValues added in v0.29.0

func DNSPolicyValues() []DNSPolicy

DNSPolicyValues returns all values of the enum

func (DNSPolicy) IsADNSPolicy added in v0.29.0

func (i DNSPolicy) IsADNSPolicy() bool

IsADNSPolicy returns "true" if the value is listed in the enum definition. "false" otherwise

func (DNSPolicy) MarshalJSON added in v0.29.0

func (d DNSPolicy) MarshalJSON() ([]byte, error)

MarshalJSON returns the JSON representation of d.

func (DNSPolicy) String added in v0.29.0

func (i DNSPolicy) String() string

func (*DNSPolicy) UnmarshalJSON added in v0.29.0

func (d *DNSPolicy) UnmarshalJSON(data []byte) error

UnmarshalJSON converts JSON data to a valid DNSPolicy

type DNSSelect added in v0.29.0

type DNSSelect uint8

DNSSelect is the strategy to use when picking a single IP if more than one is returned for a host name.

const (
	// DNSfirst returns the first IP from the response.
	DNSfirst DNSSelect = iota + 1
	// DNSroundRobin rotates the IP returned on each lookup.
	DNSroundRobin
	// DNSrandom returns a random IP from the response.
	DNSrandom
)

These are lower camel cased since enumer doesn't support it as a transform option. See https://github.com/alvaroloes/enumer/pull/60 .

func DNSSelectString added in v0.29.0

func DNSSelectString(s string) (DNSSelect, error)

DNSSelectString retrieves an enum value from the enum constants string name. Throws an error if the param is not part of the enum.

func DNSSelectValues added in v0.29.0

func DNSSelectValues() []DNSSelect

DNSSelectValues returns all values of the enum

func (DNSSelect) IsADNSSelect added in v0.29.0

func (i DNSSelect) IsADNSSelect() bool

IsADNSSelect returns "true" if the value is listed in the enum definition. "false" otherwise

func (DNSSelect) MarshalJSON added in v0.29.0

func (d DNSSelect) MarshalJSON() ([]byte, error)

MarshalJSON returns the JSON representation of d.

func (DNSSelect) String added in v0.29.0

func (i DNSSelect) String() string

func (*DNSSelect) UnmarshalJSON added in v0.29.0

func (d *DNSSelect) UnmarshalJSON(data []byte) error

UnmarshalJSON converts JSON data to a valid DNSSelect

type Duration

type Duration time.Duration

Duration is an alias for time.Duration that de/serialises to JSON as human-readable strings.

func (Duration) MarshalJSON

func (d Duration) MarshalJSON() ([]byte, error)

MarshalJSON returns the JSON representation of d

func (Duration) String

func (d Duration) String() string

func (*Duration) UnmarshalJSON

func (d *Duration) UnmarshalJSON(data []byte) error

UnmarshalJSON converts JSON data to Duration

func (*Duration) UnmarshalText

func (d *Duration) UnmarshalText(data []byte) error

UnmarshalText converts text data to Duration

type HostnameTrie added in v0.29.0

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

HostnameTrie is a tree-structured list of hostname matches with support for wildcards exclusively at the start of the pattern. Items may only be inserted and searched. Internationalized hostnames are valid.

func NewHostnameTrie added in v0.29.0

func NewHostnameTrie(source []string) (*HostnameTrie, error)

NewHostnameTrie returns a pointer to a new HostnameTrie or an error if the input is incorrect

func (*HostnameTrie) Contains added in v0.29.0

func (t *HostnameTrie) Contains(s string) (matchedPattern string, matchFound bool)

Contains returns whether s matches a pattern in the HostnameTrie along with the matching pattern, if one was found.

type IPPool added in v0.29.0

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

IPPool represent a slice of IPBlocks

func NewIPPool added in v0.29.0

func NewIPPool(ranges string) (*IPPool, error)

NewIPPool returns an IPPool slice from the provided string representation that should be comma separated list of IPs, IP ranges(ip1-ip2) and CIDRs

func (*IPPool) GetIP added in v0.29.0

func (pool *IPPool) GetIP(index uint64) net.IP

GetIP return an IP from a pool of IPBlock slice

func (*IPPool) GetIPBig added in v0.29.0

func (pool *IPPool) GetIPBig(index *big.Int) net.IP

GetIPBig returns an IP from the pool with the provided index that is big.Int

type NullDNSPolicy added in v0.29.0

type NullDNSPolicy struct {
	DNSPolicy
	Valid bool
}

NullDNSPolicy is a nullable wrapper around DNSPolicy, required for the current configuration system.

func (NullDNSPolicy) MarshalJSON added in v0.29.0

func (d NullDNSPolicy) MarshalJSON() ([]byte, error)

MarshalJSON returns the JSON representation of d.

func (*NullDNSPolicy) UnmarshalJSON added in v0.29.0

func (d *NullDNSPolicy) UnmarshalJSON(data []byte) error

UnmarshalJSON converts JSON data to a valid NullDNSPolicy.

type NullDNSSelect added in v0.29.0

type NullDNSSelect struct {
	DNSSelect
	Valid bool
}

NullDNSSelect is a nullable wrapper around DNSSelect, required for the current configuration system.

func (NullDNSSelect) MarshalJSON added in v0.29.0

func (d NullDNSSelect) MarshalJSON() ([]byte, error)

MarshalJSON returns the JSON representation of d.

func (*NullDNSSelect) UnmarshalJSON added in v0.29.0

func (d *NullDNSSelect) UnmarshalJSON(data []byte) error

UnmarshalJSON converts JSON data to a valid NullDNSSelect.

type NullDuration

type NullDuration struct {
	Duration
	Valid bool
}

NullDuration is a nullable Duration, in the same vein as the nullable types provided by package gopkg.in/guregu/null.v3.

func NewNullDuration added in v0.21.0

func NewNullDuration(d time.Duration, valid bool) NullDuration

NewNullDuration is a simple helper constructor function

func NullDurationFrom

func NullDurationFrom(d time.Duration) NullDuration

NullDurationFrom returns a new valid NullDuration from a time.Duration.

func (NullDuration) MarshalJSON

func (d NullDuration) MarshalJSON() ([]byte, error)

MarshalJSON returns the JSON representation of d

func (*NullDuration) UnmarshalJSON

func (d *NullDuration) UnmarshalJSON(data []byte) error

UnmarshalJSON converts JSON data to a valid NullDuration

func (*NullDuration) UnmarshalText

func (d *NullDuration) UnmarshalText(data []byte) error

UnmarshalText converts text data to a valid NullDuration

func (NullDuration) ValueOrZero added in v0.26.0

func (d NullDuration) ValueOrZero() Duration

ValueOrZero returns the underlying Duration value of d if valid or its zero equivalent otherwise. It matches the existing guregu/null API.

type NullHostnameTrie added in v0.29.0

type NullHostnameTrie struct {
	Trie  *HostnameTrie
	Valid bool
}

NullHostnameTrie is a nullable HostnameTrie, in the same vein as the nullable types provided by package gopkg.in/guregu/null.v3

func NewNullHostnameTrie added in v0.29.0

func NewNullHostnameTrie(source []string) (NullHostnameTrie, error)

NewNullHostnameTrie returns a NullHostnameTrie encapsulating HostnameTrie or an error if the input is incorrect

func (NullHostnameTrie) MarshalJSON added in v0.29.0

func (d NullHostnameTrie) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler interface

func (*NullHostnameTrie) UnmarshalJSON added in v0.29.0

func (d *NullHostnameTrie) UnmarshalJSON(data []byte) error

UnmarshalJSON converts JSON data to a valid NullHostnameTrie

func (*NullHostnameTrie) UnmarshalText added in v0.29.0

func (d *NullHostnameTrie) UnmarshalText(data []byte) error

UnmarshalText converts text data to a valid NullHostnameTrie

type NullIPPool added in v0.29.0

type NullIPPool struct {
	Pool  *IPPool
	Valid bool
}

NullIPPool is a nullable IPPool

func (*NullIPPool) UnmarshalText added in v0.29.0

func (n *NullIPPool) UnmarshalText(data []byte) error

UnmarshalText converts text data to a valid NullIPPool

Jump to

Keyboard shortcuts

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