go-nostr/nip19/helpers.go

35 lines
518 B
Go

package nip19
import (
"bytes"
)
const (
TLVDefault uint8 = 0
TLVRelay uint8 = 1
TLVAuthor uint8 = 2
TLVKind uint8 = 3
)
func readTLVEntry(data []byte) (typ uint8, value []byte) {
if len(data) < 2 {
return 0, nil
}
typ = data[0]
length := int(data[1])
if len(data) < 2+length {
return typ, nil
}
value = data[2 : 2+length]
return
}
func writeTLVEntry(buf *bytes.Buffer, typ uint8, value []byte) {
length := len(value)
buf.WriteByte(typ)
buf.WriteByte(uint8(length))
buf.Write(value)
}