package tlv import "io" const ( Default byte = iota Relay Author Kind ) func ReadEntry(buf io.Reader) (typ uint8, value []byte) { var err error t := []byte{:1} if _, err = buf.Read(t); err != nil { return } typ = t[0] l := []byte{:1} if _, err = buf.Read(l); err != nil { return } length := int(l[0]) value = []byte{:length} if _, err = buf.Read(value); err != nil { value = nil } return } func WriteEntry(buf io.Writer, typ uint8, value []byte) { buf.Write(append([]byte{typ, byte(len(value))}, value...)) }