valuerange

package
v0.1.8 Latest Latest
Warning

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

Go to latest
Published: Sep 30, 2023 License: Apache-2.0, BSD-2-Clause Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var BoundTypeNames = [...]string{
	"BoundTypeOpen",
	"BoundTypeClosed",
}

BoundTypeNames contains a dictionary of the names of BoundTypes.

View Source
var (
	// ErrParseBytesFailed is returned if information can not be parsed from a sequence of bytes.
	ErrParseBytesFailed = errors.New("failed to parse bytes")
)
View Source
var ValueTypeNames = [...]string{
	"Int8ValueType",
	"Int16ValueType",
	"Int32ValueType",
	"Int64ValueType",
	"Uint8ValueType",
	"Uint16ValueType",
	"Uint32ValueType",
	"Uint64ValueType",
}

ValueTypeNames contains a dictionary of the names of ValueTypes.

Functions

This section is empty.

Types

type BoundType

type BoundType uint8

BoundType indicates whether an EndPoint of some ValueRange is contained in the ValueRange itself ("closed") or not ("open"). If a range is unbounded on a side, it is neither open nor closed on that side; the bound simply does not exist.

const (
	// BoundTypeOpen indicates that the EndPoint value is considered part of the ValueRange ("inclusive").
	BoundTypeOpen BoundType = iota

	// BoundTypeClosed indicates that the EndPoint value is not considered part of the ValueRange ("exclusive").
	BoundTypeClosed
)

func BoundTypeFromBytes

func BoundTypeFromBytes(boundTypeBytes []byte) (boundType BoundType, consumedBytes int, err error)

BoundTypeFromBytes unmarshals a BoundType from a sequence of bytes.

func BoundTypeFromMarshalUtil

func BoundTypeFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (boundType BoundType, err error)

BoundTypeFromMarshalUtil unmarshals a BoundType using a MarshalUtil (for easier unmarshalling).

func (BoundType) Bytes

func (b BoundType) Bytes() []byte

Bytes returns a marshaled version of the BoundType.

func (BoundType) String

func (b BoundType) String() string

String returns a human-readable version of the BoundType.

type EndPoint

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

EndPoint contains information about where ValueRanges start and end. It combines a threshold value with a BoundType.

func EndPointFromBytes

func EndPointFromBytes(endPointBytes []byte) (endPoint *EndPoint, consumedBytes int, err error)

EndPointFromBytes unmarshals an EndPoint from a sequence of bytes.

func EndPointFromMarshalUtil

func EndPointFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (endPoint *EndPoint, err error)

EndPointFromMarshalUtil unmarshals an EndPoint using a MarshalUtil (for easier unmarshalling).

func NewEndPoint

func NewEndPoint(value Value, boundType BoundType) *EndPoint

NewEndPoint create a new EndPoint from the given details.

func (*EndPoint) BoundType

func (e *EndPoint) BoundType() BoundType

BoundType returns the BoundType of the EndPoint.

func (*EndPoint) Bytes

func (e *EndPoint) Bytes() []byte

Bytes returns a marshaled version of the EndPoint.

func (*EndPoint) String

func (e *EndPoint) String() string

String returns a human-readable version of the EndPoint.

func (*EndPoint) Value

func (e *EndPoint) Value() Value

Value returns the Value of the EndPoint.

type Int16Value

type Int16Value int16

Int16Value is a wrapper for int16 values that makes these values compatible with the Value interface so they can be used in ValueRanges.

func Int16ValueFromBytes

func Int16ValueFromBytes(bytes []byte) (int16Value Int16Value, consumedBytes int, err error)

Int16ValueFromBytes unmarshals a Int16Value from a sequence of bytes.

func Int16ValueFromMarshalUtil

func Int16ValueFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (int16Value Int16Value, err error)

Int16ValueFromMarshalUtil unmarshals an Int16Value using a MarshalUtil (for easier unmarshalling).

func (Int16Value) Bytes

func (i Int16Value) Bytes() []byte

Bytes returns a marshaled version of the Value.

func (Int16Value) Compare

func (i Int16Value) Compare(other Value) int

Compare return 0 if the other Value is identical, -1 if it is bigger and 1 if it is smaller.

func (Int16Value) String

func (i Int16Value) String() string

String returns a human-readable version of the Value.

func (Int16Value) Type

func (i Int16Value) Type() ValueType

Type returns the type of the Value. It can be used to tell different ValueTypes apart and write polymorphic code.

type Int32Value

type Int32Value int32

Int32Value is a wrapper for int32 values that makes these values compatible with the Value interface so they can be used in ValueRanges.

func Int32ValueFromBytes

func Int32ValueFromBytes(bytes []byte) (int32Value Int32Value, consumedBytes int, err error)

Int32ValueFromBytes unmarshals a Int32Value from a sequence of bytes.

func Int32ValueFromMarshalUtil

func Int32ValueFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (int32Value Int32Value, err error)

Int32ValueFromMarshalUtil unmarshals an Int32Value using a MarshalUtil (for easier unmarshalling).

func (Int32Value) Bytes

func (i Int32Value) Bytes() []byte

Bytes returns a marshaled version of the Value.

func (Int32Value) Compare

func (i Int32Value) Compare(other Value) int

Compare return 0 if the other Value is identical, -1 if it is bigger and 1 if it is smaller.

func (Int32Value) String

func (i Int32Value) String() string

String returns a human-readable version of the Value.

func (Int32Value) Type

func (i Int32Value) Type() ValueType

Type returns the type of the Value. It can be used to tell different ValueTypes apart and write polymorphic code.

type Int64Value

type Int64Value int64

Int64Value is a wrapper for int64 values that makes these values compatible with the Value interface, so they can be used in ValueRanges.

func Int64ValueFromBytes

func Int64ValueFromBytes(bytes []byte) (int64Value Int64Value, consumedBytes int, err error)

Int64ValueFromBytes unmarshals a Int64Value from a sequence of bytes.

func Int64ValueFromMarshalUtil

func Int64ValueFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (int64Value Int64Value, err error)

Int64ValueFromMarshalUtil unmarshals an Int64Value using a MarshalUtil (for easier unmarshalling).

func (Int64Value) Bytes

func (i Int64Value) Bytes() []byte

Bytes returns a marshaled version of the Value.

func (Int64Value) Compare

func (i Int64Value) Compare(other Value) int

Compare return 0 if the other Value is identical, -1 if it is bigger and 1 if it is smaller.

func (Int64Value) String

func (i Int64Value) String() string

String returns a human-readable version of the Value.

func (Int64Value) Type

func (i Int64Value) Type() ValueType

Type returns the type of the Value. It can be used to tell different ValueTypes apart and write polymorphic code.

type Int8Value

type Int8Value int8

Int8Value is a wrapper for int8 values that makes these values compatible with the Value interface so they can be used in ValueRanges.

func Int8ValueFromBytes

func Int8ValueFromBytes(bytes []byte) (int8Value Int8Value, consumedBytes int, err error)

Int8ValueFromBytes unmarshals a Int8Value from a sequence of bytes.

func Int8ValueFromMarshalUtil

func Int8ValueFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (int8Value Int8Value, err error)

Int8ValueFromMarshalUtil unmarshals an Int8Value using a MarshalUtil (for easier unmarshalling).

func (Int8Value) Bytes

func (i Int8Value) Bytes() []byte

Bytes returns a marshaled version of the Value.

func (Int8Value) Compare

func (i Int8Value) Compare(other Value) int

Compare return 0 if the other Value is identical, -1 if it is bigger and 1 if it is smaller.

func (Int8Value) String

func (i Int8Value) String() string

String returns a human-readable version of the Value.

func (Int8Value) Type

func (i Int8Value) Type() ValueType

Type returns the type of the Value. It can be used to tell different ValueTypes apart and write polymorphic code.

type Uint16Value

type Uint16Value uint16

Uint16Value is a wrapper for uint16 values that makes these values compatible with the Value interface so they can be used in ValueRanges.

func Uint16ValueFromBytes

func Uint16ValueFromBytes(bytes []byte) (uint16Value Uint16Value, consumedBytes int, err error)

Uint16ValueFromBytes unmarshals a Uint16Value from a sequence of bytes.

func Uint16ValueFromMarshalUtil

func Uint16ValueFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (uint16Value Uint16Value, err error)

Uint16ValueFromMarshalUtil unmarshals an Uint16Value using a MarshalUtil (for easier unmarshalling).

func (Uint16Value) Bytes

func (i Uint16Value) Bytes() []byte

Bytes returns a marshaled version of the Value.

func (Uint16Value) Compare

func (i Uint16Value) Compare(other Value) int

Compare return 0 if the other Value is identical, -1 if it is bigger and 1 if it is smaller.

func (Uint16Value) String

func (i Uint16Value) String() string

String returns a human-readable version of the Value.

func (Uint16Value) Type

func (i Uint16Value) Type() ValueType

Type returns the type of the Value. It can be used to tell different ValueTypes apart and write polymorphic code.

type Uint32Value

type Uint32Value uint32

Uint32Value is a wrapper for uint32 values that makes these values compatible with the Value interface so they can be used in ValueRanges.

func Uint32ValueFromBytes

func Uint32ValueFromBytes(bytes []byte) (uint32Value Uint32Value, consumedBytes int, err error)

Uint32ValueFromBytes unmarshals a Uint32Value from a sequence of bytes.

func Uint32ValueFromMarshalUtil

func Uint32ValueFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (uint32Value Uint32Value, err error)

Uint32ValueFromMarshalUtil unmarshals an Uint32Value using a MarshalUtil (for easier unmarshalling).

func (Uint32Value) Bytes

func (i Uint32Value) Bytes() []byte

Bytes returns a marshaled version of the Value.

func (Uint32Value) Compare

func (i Uint32Value) Compare(other Value) int

Compare return 0 if the other Value is identical, -1 if it is bigger and 1 if it is smaller.

func (Uint32Value) String

func (i Uint32Value) String() string

String returns a human-readable version of the Value.

func (Uint32Value) Type

func (i Uint32Value) Type() ValueType

Type returns the type of the Value. It can be used to tell different ValueTypes apart and write polymorphic code.

type Uint64Value

type Uint64Value uint64

Uint64Value is a wrapper for uint64 values that makes these values compatible with the Value interface so they can be used in ValueRanges.

func Uint64ValueFromBytes

func Uint64ValueFromBytes(bytes []byte) (uint64Value Uint64Value, consumedBytes int, err error)

Uint64ValueFromBytes unmarshals a Uint64Value from a sequence of bytes.

func Uint64ValueFromMarshalUtil

func Uint64ValueFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (uint64Value Uint64Value, err error)

Uint64ValueFromMarshalUtil unmarshals an Uint64Value using a MarshalUtil (for easier unmarshalling).

func (Uint64Value) Bytes

func (i Uint64Value) Bytes() []byte

Bytes returns a marshaled version of the Value.

func (Uint64Value) Compare

func (i Uint64Value) Compare(other Value) int

Compare return 0 if the other Value is identical, -1 if it is bigger and 1 if it is smaller.

func (Uint64Value) String

func (i Uint64Value) String() string

String returns a human-readable version of the Value.

func (Uint64Value) Type

func (i Uint64Value) Type() ValueType

Type returns the type of the Value. It can be used to tell different ValueTypes apart and write polymorphic code.

type Uint8Value

type Uint8Value uint8

Uint8Value is a wrapper for uint8 values that makes these values compatible with the Value interface so they can be used in ValueRanges.

func Uint8ValueFromBytes

func Uint8ValueFromBytes(bytes []byte) (uint8Value Uint8Value, consumedBytes int, err error)

Uint8ValueFromBytes unmarshals a Uint8Value from a sequence of bytes.

func Uint8ValueFromMarshalUtil

func Uint8ValueFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (uint8Value Uint8Value, err error)

Uint8ValueFromMarshalUtil unmarshals an Uint8Value using a MarshalUtil (for easier unmarshalling).

func (Uint8Value) Bytes

func (i Uint8Value) Bytes() []byte

Bytes returns a marshaled version of the Value.

func (Uint8Value) Compare

func (i Uint8Value) Compare(other Value) int

Compare return 0 if the other Value is identical, -1 if it is bigger and 1 if it is smaller.

func (Uint8Value) String

func (i Uint8Value) String() string

String returns a human-readable version of the Value.

func (Uint8Value) Type

func (i Uint8Value) Type() ValueType

Type returns the type of the Value. It can be used to tell different ValueTypes apart and write polymorphic code.

type Value

type Value interface {
	// Type returns the type of the Value. It can be used to tell different ValueTypes apart and write polymorphic code.
	Type() ValueType

	// Compare return 0 if the other Value is identical, -1 if it is bigger and 1 if it is smaller.
	Compare(other Value) int

	// Bytes returns a marshaled version of the Value.
	Bytes() []byte

	// String returns a human-readable version of the Value.
	String() string
}

Value is an interface that is used by the ValueRanges to compare different Values. It is required to keep the ValueRange generic.

func ValueFromBytes

func ValueFromBytes(valueBytes []byte) (value Value, consumedBytes int, err error)

ValueFromBytes unmarshals a Value from a sequence of bytes.

func ValueFromMarshalUtil

func ValueFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (Value, error)

ValueFromMarshalUtil unmarshals a Value using a MarshalUtil (for easier unmarshalling).

type ValueRange

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

ValueRange defines the boundaries around a contiguous span of Values (i.e. "integers from 1 to 100 inclusive").

It is not possible to iterate over the contained values. Each Range may be bounded or unbounded. If bounded, there is an associated endpoint value and the range is considered to be either open (does not include the endpoint) or closed (includes the endpoint) on that side.

With three possibilities on each side, this yields nine basic types of ranges, enumerated below:

Notation Definition Factory method (a .. b) {x | a < x < b} Open [a .. b] {x | a <= x <= b} Closed (a .. b] {x | a < x <= b} OpenClosed [a .. b) {x | a <= x < b} ClosedOpen (a .. +INF) {x | x > a} GreaterThan [a .. +INF) {x | x >= a} AtLeast (-INF .. b) {x | x < b} LessThan (-INF .. b] {x | x <= b} AtMost (-INF .. +INF) {x} All

When both endpoints exist, the upper endpoint may not be less than the lower. The endpoints may be equal only if at least one of the bounds is closed.

func All

func All() *ValueRange

All returns a ValueRange that contains all possible Values.

func AtLeast

func AtLeast(lower Value) *ValueRange

AtLeast returns a ValueRange that contains all Values greater than or equal to lower.

func AtMost

func AtMost(upper Value) *ValueRange

AtMost returns a ValueRange that contains all Values less than or equal to upper.

func Closed

func Closed(lower Value, upper Value) *ValueRange

Closed returns a ValueRange that contains all Values greater than or equal to lower and less than or equal to upper.

func ClosedOpen

func ClosedOpen(lower Value, upper Value) *ValueRange

ClosedOpen returns a ValueRange that contains all Values greater than or equal to lower and strictly less than upper.

func FromBytes

func FromBytes(valueRangeBytes []byte) (valueRange *ValueRange, consumedBytes int, err error)

FromBytes unmarshals a ValueRange from a sequence of bytes.

func FromMarshalUtil

func FromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (valueRange *ValueRange, err error)

FromMarshalUtil unmarshals a ValueRange using a MarshalUtil (for easier unmarshalling).

func GreaterThan

func GreaterThan(lower Value) *ValueRange

GreaterThan returns a ValueRange that contains all Values strictly greater than lower.

func LessThan

func LessThan(upper Value) *ValueRange

LessThan returns a ValueRange that contains all values strictly less than upper.

func Open

func Open(lower Value, upper Value) *ValueRange

Open returns a ValueRange that contains all Values strictly greater than lower and strictly less than upper.

func OpenClosed

func OpenClosed(lower Value, upper Value) *ValueRange

OpenClosed returns a ValueRange that contains all values strictly greater than lower and less than or equal to upper.

func (*ValueRange) Bytes

func (v *ValueRange) Bytes() []byte

Bytes returns a marshaled version of the ValueRange.

func (*ValueRange) Compare

func (v *ValueRange) Compare(value Value) int

Compare returns 0 if the ValueRange contains the given Value, -1 if its contained Values are smaller and 1 if they are bigger.

func (*ValueRange) Contains

func (v *ValueRange) Contains(value Value) bool

Contains returns true if value is within the bounds of this ValueRange.

func (*ValueRange) Empty

func (v *ValueRange) Empty() bool

Empty returns true if this range is of the form [v..v) or (v..v]. This does not encompass ranges of the form (v..v), because such ranges are invalid and can't be constructed at all.

Note that certain discrete ranges such as the integer range (3..4) are not considered empty, even though they contain no actual values.

func (*ValueRange) HasLowerBound

func (v *ValueRange) HasLowerBound() bool

HasLowerBound returns true if this ValueRange has a lower EndPoint.

func (*ValueRange) HasUpperBound

func (v *ValueRange) HasUpperBound() bool

HasUpperBound returns true if this ValueRange has an upper EndPoint.

func (*ValueRange) LowerBoundType

func (v *ValueRange) LowerBoundType() BoundType

LowerBoundType returns the type of this ValueRange's lower bound - BoundTypeClosed if the range includes its lower EndPoint and BoundTypeOpen if it does not include its lower EndPoint.

func (*ValueRange) LowerEndPoint

func (v *ValueRange) LowerEndPoint() *EndPoint

LowerEndPoint returns the lower EndPoint of this ValueRange. It panics if the ValueRange has no lower EndPoint.

func (*ValueRange) String

func (v *ValueRange) String() string

String returns a human-readable version of the ValueRange.

func (*ValueRange) UpperBoundType

func (v *ValueRange) UpperBoundType() BoundType

UpperBoundType returns the type of this ValueRange's upper bound - BoundTypeClosed if the range includes its upper EndPoint and BoundTypeOpen if it does not include its upper EndPoint.

func (*ValueRange) UpperEndPoint

func (v *ValueRange) UpperEndPoint() *EndPoint

UpperEndPoint returns the upper EndPoint of this Range or nil if it is unbounded.

type ValueType

type ValueType int8

ValueType represents the type different kinds of Values.

const (
	// Int8ValueType represents the type of Int8Values.
	Int8ValueType ValueType = iota

	// Int16ValueType represents the type of Int16Values.
	Int16ValueType

	// Int32ValueType represents the type of Int32Values.
	Int32ValueType

	// Int64ValueType represents the type of Int64Values.
	Int64ValueType

	// Uint8ValueType represents the type of Uint8Values.
	Uint8ValueType

	// Uint16ValueType represents the type of Uint16ValueType.
	Uint16ValueType

	// Uint32ValueType represents the type of Uint32ValueType.
	Uint32ValueType

	// Uint64ValueType represents the type of Uint64Values.
	Uint64ValueType
)

func ValueTypeFromBytes

func ValueTypeFromBytes(valueTypeBytes []byte) (valueType ValueType, consumedBytes int, err error)

ValueTypeFromBytes unmarshals a ValueType from a sequence of bytes.

func ValueTypeFromMarshalUtil

func ValueTypeFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (valueType ValueType, err error)

ValueTypeFromMarshalUtil unmarshals a ValueType using a MarshalUtil (for easier unmarshalling).

func (ValueType) Bytes

func (v ValueType) Bytes() []byte

Bytes returns a marshaled version of the ValueType.

func (ValueType) String

func (v ValueType) String() string

String returns a human-readable representation of the ValueType.

Jump to

Keyboard shortcuts

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