Files
ippserver/packages/ipp/charsetvalue.go

53 lines
912 B
Go

package ipp
import (
"io"
)
type charSetValue struct {
name string
value string
}
func NewCharSetValue(name string, value string) *charSetValue {
c := new(charSetValue)
c.name = name
c.value = value
return c
}
func (c charSetValue) Name() string {
return c.name
}
func (c charSetValue) String() string {
return c.name + ":" + c.value
}
func (c *charSetValue) valueTag() tag {
return charsetValueTag
}
func (c *charSetValue) unmarshal(byteStream io.Reader) {
c.name, c.value = unmarshalSingleValue(byteStream)
}
func (c *charSetValue) marshal() []byte {
l := 5 + len(c.name) + len(c.value)
b := make([]byte, l, l)
b[0] = byte(charsetValueTag)
marshalNameValue(c.name, c.value, b[1:])
return b
}
func (c *charSetValue) marshalInto([]byte) int {
return 0
}
func (c *charSetValue) size() int {
l := 1 + 4 // The attribute tag + 2 lengths
l += len(c.name)
l += len(c.value)
return l
}