Files
ippserver/packages/ipp/enum.go
2021-01-09 12:10:43 +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 (e *enum) addValue(v interface{}) {
e.values = append(e.values, v.(int32))
}
func (e *enum) marshal() []byte {
return marshalInteger(enumValueTag, e.name, e.values)
}