|
|
|
@ -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) |
|
|
|
|
} |
|
|
|
|