mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2024-12-03 03:58:36 +00:00
61a74ab331
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>
35 lines
761 B
Go
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
|
|
}
|