blob: a376229ef80558b211c05e6fe355d3b2c1ef56b0 [file] [log] [blame]
package expectations
// Label for classifying digests.
type Label int
const (
// Untriaged represents a previously unseen digest.
Untriaged Label = iota // == 0
// Positive represents a known good digest.
Positive
// Negative represents a known bad digest.
Negative
)
// LabelStr is the string version of Label. Used e.g. to represent digest classifications in JSON.
type LabelStr string
const (
// UntriagedStr represents a previously unseen digest. String version of Untriaged.
UntriagedStr = LabelStr("untriaged")
// PositiveStr represents a known good digest. String version of Positive.
PositiveStr = LabelStr("positive")
// NegativeStr represents a known bad digest. String version of Negative.
NegativeStr = LabelStr("negative")
)
// AllLabelStr is a list of all possible LabelStr values. The index of each element in this list
// must match its Label value (Untriaged = 0, etc.).
var AllLabelStr = []LabelStr{UntriagedStr, PositiveStr, NegativeStr}
func (l Label) String() LabelStr {
return AllLabelStr[l]
}
var labels = map[LabelStr]Label{
UntriagedStr: Untriaged,
PositiveStr: Positive,
NegativeStr: Negative,
}
// LabelFromString returns the Label corresponding to the given LabelStr, or Untriaged if there is
// no match.
func LabelFromString(s LabelStr) Label {
if l, ok := labels[s]; ok {
return l
}
return Untriaged
}
// ValidLabelStr returns true if the given LabelStr is valid.
func ValidLabelStr(s LabelStr) bool {
_, ok := labels[s]
return ok
}