rings: introduce generic ErrOutOfRange() factory

Signed-off-by: Alejandro Mery <amery@jpi.io>
This commit is contained in:
2024-05-25 21:21:31 +00:00
parent 47c4e8f8c4
commit a4276c9907
+12
View File
@@ -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, "%s out of range (%v)", field, value)
}