Files
ippserver/packages/ipp/enum.go
Henrik Sölver 1eff8711d3 Add integer attribute type.
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.
2020-12-29 20:53:01 +01:00

42 lines
613 B
Go

package ipp
import (
"fmt"
)
type enum struct {
name string
values []int32
}
func NewEnum(name string, values ...int32) *enum {
e := new(enum)
e.name = name
e.values = values
return e
}
func (e enum) Name() string {
return e.name
}
func (e enum) String() string {
return e.name + ":" + fmt.Sprint(e.values)
}
func (e *enum) valueTag() tag {
return enumValueTag
}
func (e *enum) size() int {
return 9 + len(e.name)
}
func (i *enum) addValue(v interface{}) {
i.values = append(i.values, v.(int32))
}
func (e *enum) marshal() []byte {
return marshalInteger(enumValueTag, e.name, e.values)
}