An open API service indexing awesome lists of open source software.

https://github.com/atomicgo/constraints

🦖 Drop-in replacement for golang.org/x/exp/constraints with more predefined constraints
https://github.com/atomicgo/constraints

atomicgo constraints generics go golang golang-library hacktoberfest

Last synced: about 2 months ago
JSON representation

🦖 Drop-in replacement for golang.org/x/exp/constraints with more predefined constraints

Awesome Lists containing this project

README

        

AtomicGo | constraints


Downloads


Latest Release


Tests


Coverage


Unit test count


License: MIT



Go report

---


Documentation
|
Contributing
|
Code of Conduct

---


AtomicGo


go get atomicgo.dev/constraints



# constraints

```go
import "atomicgo.dev/constraints"
```

Package constraints provides constraints for type parameters aka. generics in Go.

This is a more comprehensive drop\-in replacement for golang.org/x/exp/constraints.

## Index

- [type Addable](<#Addable>)
- [type Comparable](<#Comparable>)
- [type Complex](<#Complex>)
- [type Float](<#Float>)
- [type Integer](<#Integer>)
- [type Number](<#Number>)
- [type Numeric](<#Numeric>)
- [type Orderable](<#Orderable>)
- [type Ordered](<#Ordered>)
- [type Signed](<#Signed>)
- [type Unsigned](<#Unsigned>)


## type [Addable]()

Addable is a constraint that matches any type that can be added with the \+ operator.

```go
type Addable interface {
Number | ~string
}
```


## type [Comparable]()

Comparable is a constraint that matches any type that can be compared with the == and \!= operators.

```go
type Comparable interface {
comparable
}
```


## type [Complex]()

Complex is a constraint that matches any complex number type.

```go
type Complex interface {
~complex64 | ~complex128
}
```


## type [Float]()

Float is a constraint that matches any floating point number type.

```go
type Float interface {
~float32 | ~float64
}
```


## type [Integer]()

Integer is a constraint that matches any integer type.

```go
type Integer interface {
Signed | Unsigned
}
```


## type [Number]()

Number is a constraint that matches any real number type. The Number constraint does not include Complex numbers, as those are not ordered. If you also need Complex numbers, use the Numeric constraint.

```go
type Number interface {
Float | Integer
}
```


## type [Numeric]()

Numeric is a constraint that matches any numeric type, including complex numbers.

```go
type Numeric interface {
Number | Complex
}
```


## type [Orderable]()

Orderable is a constraint that matches any type that can be ordered with the \<, \<=, \>, and \>= operators.

```go
type Orderable interface {
Integer | Float | ~string
}
```


## type [Ordered]()

Ordered is a constraint that matches any ordered type.

```go
type Ordered interface {
Integer | Float | ~string
}
```


## type [Signed]()

Signed is a constraint that matches any signed integer type.

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


## type [Unsigned]()

Unsigned is a constraint that matches any unsigned integer type.

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

Generated by [gomarkdoc]()

---

> [AtomicGo.dev](https://atomicgo.dev)  · 
> with ❤️ by [@MarvinJWendt](https://github.com/MarvinJWendt) |
> [MarvinJWendt.com](https://marvinjwendt.com)