Files
ippserver/packages/ipp/enum.go

42 lines
612 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)
}