|
|
- package binary
-
- import (
- "crypto/sha256"
- "bytes"
- )
-
- func BinaryBytes(b Binary) ByteSlice {
- buf := bytes.NewBuffer(nil)
- b.WriteTo(buf)
- return ByteSlice(buf.Bytes())
- }
-
- // NOTE: does not care about the type, only the binary representation.
- func BinaryEqual(a, b Binary) bool {
- aBytes := BinaryBytes(a)
- bBytes := BinaryBytes(b)
- return bytes.Equal(aBytes, bBytes)
- }
-
- // NOTE: does not care about the type, only the binary representation.
- func BinaryCompare(a, b Binary) int {
- aBytes := BinaryBytes(a)
- bBytes := BinaryBytes(b)
- return bytes.Compare(aBytes, bBytes)
- }
-
- func BinaryHash(b Binary) ByteSlice {
- hasher := sha256.New()
- _, err := b.WriteTo(hasher)
- if err != nil { panic(err) }
- return ByteSlice(hasher.Sum(nil))
- }
|