rings: Prefix and Address factories #48

Merged
karasz merged 6 commits from pr-amery-rings into main 2024-05-29 17:44:11 +02:00
Showing only changes of commit 52e1195139 - Show all commits
+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)
}