bytestring.go 712 Bytes
Newer Older
Steven Allen's avatar
Steven Allen committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
package dht_pb

import (
	"encoding/json"
)

type byteString string

func (b byteString) Marshal() ([]byte, error) {
	return []byte(b), nil
}

func (b *byteString) MarshalTo(data []byte) (int, error) {
	return copy(data, *b), nil
}

func (b *byteString) Unmarshal(data []byte) error {
	*b = byteString(data)
	return nil
}

func (b *byteString) Size() int {
	return len(*b)
}

func (b byteString) MarshalJSON() ([]byte, error) {
	return json.Marshal([]byte(b))
}

func (b *byteString) UnmarshalJSON(data []byte) error {
	var buf []byte
	err := json.Unmarshal(data, &buf)
	if err != nil {
		return err
	}
	*b = byteString(buf)
	return nil
}

func (b byteString) Equal(other byteString) bool {
	return b == other
}