rings: introduce generic ErrOutOfRange() factory
Signed-off-by: Alejandro Mery <amery@jpi.io>
This commit is contained in:
@@ -2,6 +2,12 @@
|
||||
// of a cluster
|
||||
package rings
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
|
||||
"darvaza.org/core"
|
||||
)
|
||||
|
||||
const (
|
||||
// RegionMax indicates the highest number that can be used for a [RegionID].
|
||||
RegionMax = (1 << 4) - 1
|
||||
@@ -35,3 +41,9 @@ func (n NodeID) Valid() bool { return n > 0 && n <= NodeMax }
|
||||
|
||||
// ValidZero tells a [NodeID] is within the valid range for a gateway.
|
||||
func (n NodeID) ValidZero() bool { return n > 0 && n <= NodeZeroMax }
|
||||
|
||||
// ErrOutOfRange is an error indicating the value of a field
|
||||
// is out of range.
|
||||
func ErrOutOfRange[T ~int | ~uint32](value T, field string) error {
|
||||
return core.Wrap(syscall.EINVAL, "%v: %s out of range", value, field)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user