package cluster

import (
	"errors"
	"io/fs"

	"darvaza.org/core"

	"git.jpi.io/amery/jpictl/pkg/rings"
)

var (
	// ErrInvalidName indicates the name isn't valid
	ErrInvalidName = errors.New("invalid name")

	// ErrUnknownNode indicates there is a reference to a node
	// we don't have on the tree
	ErrUnknownNode = errors.New("node does not exist")

	// ErrInvalidNode indicates the nodes can't be used for
	// the intended purpose
	ErrInvalidNode = errors.New("invalid node")
)

// ErrInvalidRing returns an error indicating the [rings.RingID]
// can't be used for the intended purpose
func ErrInvalidRing(ringID rings.RingID) error {
	return core.QuietWrap(fs.ErrInvalid, "invalid ring %v", ringID-1)
}