neo-go/pkg/core/native/noderoles/role.go
Anna Shaleva 61a74ab331 native: introduce Stringer for noderoles types
And rename roles.go to role.go to match the role_string.go and the
existing naming pattern for enums.

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-10-19 11:33:04 +03:00

35 lines
761 B
Go

package noderoles
//go:generate stringer -type=Role
// Role represents the type of the participant.
type Role byte
// Role enumeration.
const (
_ Role = 1 << iota
_
StateValidator
Oracle
NeoFSAlphabet
P2PNotary
// last denotes the end of roles enum. Consider adding new roles before the last.
last
)
// roles is a map of valid Role string representation to its type.
var roles map[string]Role
func init() {
roles = make(map[string]Role)
for i := StateValidator; i < last; i = i << 1 {
roles[i.String()] = i
}
}
// FromString returns a node role parsed from its string representation and a
// boolean value denoting whether the conversion was OK and the role exists.
func FromString(s string) (Role, bool) {
r, ok := roles[s]
return r, ok
}