39 lines
548 B
Go
39 lines
548 B
Go
package types
|
|
|
|
type Role string
|
|
|
|
const (
|
|
MasterRole Role = "master"
|
|
HostRole Role = "host"
|
|
DnsRole Role = "dns"
|
|
NameserverRole Role = "ns"
|
|
)
|
|
|
|
var Roles = []Role{
|
|
MasterRole,
|
|
HostRole,
|
|
DnsRole,
|
|
NameserverRole,
|
|
}
|
|
|
|
var Names = func() []Role {
|
|
o := make([]Role, 0, len(Roles))
|
|
for _, r := range Roles {
|
|
o = append(o, r)
|
|
}
|
|
return o
|
|
}()
|
|
|
|
func (r Role) String() string {
|
|
return string(r)
|
|
}
|
|
|
|
func Parse(s string) (Role, bool) {
|
|
for _, r := range Roles {
|
|
if s == r.String() {
|
|
return r, true
|
|
}
|
|
}
|
|
|
|
return "", false
|
|
}
|