constraints

package
v0.0.0-...-a4a72b7 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2023 License: MIT Imports: 0 Imported by: 0

Documentation

Overview

Package constraints has some useful generic type constraints defined which is very similar to golang.org/x/exp/constraints(https://pkg.go.dev/golang.org/x/exp/constraints) package. We refrained from using that until it gets placed into the standard library - currently there are some questions regarding this package [ref](https://github.com/golang/go/issues/50792).

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Float

type Float interface {
	~float32 | ~float64
}

Float is a generic type constraint for all floating point types.

type Integer

type Integer interface {
	Signed | Unsigned
}

Integer is a generic type constraint for all integers (signed and unsigned.)

type Number

type Number interface {
	Integer | Float
}

Number is a generic type constraint for all numeric types in Go except Complex types.

type Ordered

type Ordered interface {
	Integer | ~string | Float
}

Ordered is a generic type constraint for all ordered data types in Go. Loosely speaking, in mathematics a field is an ordered field if there is a "total order" (a binary relation - in this case `<` symbol) such that we will always have if a < b then a + c < b + c and if 0 < a, 0 < b then 0 < a.b The idea in Go is quite similar, though only limited to Go standard types not user defined types.

type Signed

type Signed interface {
	~int | ~int8 | ~int16 | ~int32 | ~int64
}

Signed is a generic type constraint for all signed integers.

type Unsigned

type Unsigned interface {
	~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64
}

Unsigned is a generic type constraint for all unsigned integers.

Jump to

Keyboard shortcuts

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