package ipp import ( "encoding/binary" "fmt" "io" ) type resolution struct { name string crossFeedResolution int32 feedResolution int32 units int8 } func NewResolution() *resolution { r := new(resolution) return r } func (r *resolution) unmarshal(byteStream io.Reader) { var length uint16 binary.Read(byteStream, binary.BigEndian, &length) attributeName := make([]byte, length) if length > 0 { binary.Read(byteStream, binary.BigEndian, attributeName) } r.name = string(attributeName) binary.Read(byteStream, binary.BigEndian, &length) if length != 9 { panic("Wrong length in resolution") } binary.Read(byteStream, binary.BigEndian, &r.crossFeedResolution) binary.Read(byteStream, binary.BigEndian, &r.feedResolution) binary.Read(byteStream, binary.BigEndian, &r.units) } func (r resolution) String() string { return fmt.Sprintf("%v:%v:%v", r.crossFeedResolution, r.feedResolution, r.units) } func (r *resolution) marshal() []byte { return []byte{} } func (r *resolution) valueTag() tag { return resolutionValueTag }