Add YAML parsing for LabelName

This commit is contained in:
Fabian Reinartz 2015-05-20 16:09:10 +02:00
parent b0bd7e1be3
commit b2b3dad248
1 changed files with 15 additions and 0 deletions

View File

@ -14,6 +14,8 @@
package model package model
import ( import (
"fmt"
"regexp"
"strings" "strings"
) )
@ -63,6 +65,19 @@ const (
// therewith. // therewith.
type LabelName string type LabelName string
// UnmarshalYAML implements the yaml.Unmarshaler interface.
func (ln *LabelName) UnmarshalYAML(unmarshal func(interface{}) error) error {
var s string
if err := unmarshal(&s); err != nil {
return err
}
if !labelNameRE.MatchString(s) {
return fmt.Errorf("%q is not a valid label name", s)
}
*ln = LabelName(s)
return nil
}
// LabelNames is a sortable LabelName slice. In implements sort.Interface. // LabelNames is a sortable LabelName slice. In implements sort.Interface.
type LabelNames []LabelName type LabelNames []LabelName