Merges some common code between integer and enum.
Enum can now bw a set.
Add valuer must take a interface{} in addValue since it can be different types.
38 lines
577 B
Go
38 lines
577 B
Go
package ipp
|
|
|
|
type keyWord struct {
|
|
sos *setOfStrings
|
|
}
|
|
|
|
func NewKeyWord(name string, values ...string) *keyWord {
|
|
|
|
k := new(keyWord)
|
|
k.sos = NewSetOfStrings(name, keyWordValueTag, values)
|
|
return k
|
|
}
|
|
|
|
func (k keyWord) Name() string {
|
|
return k.sos.name
|
|
}
|
|
|
|
func (k keyWord) String() string {
|
|
return k.sos.String()
|
|
}
|
|
|
|
func (k *keyWord) size() int {
|
|
return k.sos.size()
|
|
}
|
|
|
|
func (k *keyWord) valueTag() tag {
|
|
return k.sos.valueTag()
|
|
}
|
|
|
|
func (k *keyWord) marshal() []byte {
|
|
return k.sos.marshal()
|
|
}
|
|
|
|
func (k *keyWord) addValue(v interface{}) {
|
|
k.sos.AddValue(v.(string))
|
|
}
|
|
|