summaryrefslogtreecommitdiff
path: root/vendor/codeberg.org/gruf/go-hashenc/hashenc.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/codeberg.org/gruf/go-hashenc/hashenc.go')
-rw-r--r--vendor/codeberg.org/gruf/go-hashenc/hashenc.go58
1 files changed, 0 insertions, 58 deletions
diff --git a/vendor/codeberg.org/gruf/go-hashenc/hashenc.go b/vendor/codeberg.org/gruf/go-hashenc/hashenc.go
deleted file mode 100644
index fc110c533..000000000
--- a/vendor/codeberg.org/gruf/go-hashenc/hashenc.go
+++ /dev/null
@@ -1,58 +0,0 @@
-package hashenc
-
-import (
- "hash"
-
- "codeberg.org/gruf/go-bytes"
-)
-
-// HashEncoder defines an interface for calculating encoded hash sums of binary data
-type HashEncoder interface {
- // EncodeSum calculates the hash sum of src and encodes (at most) Size() into dst
- EncodeSum(dst []byte, src []byte)
-
- // EncodedSum calculates the encoded hash sum of src and returns data in a newly allocated bytes.Bytes
- EncodedSum(src []byte) bytes.Bytes
-
- // Size returns the expected length of encoded hashes
- Size() int
-}
-
-// New returns a new HashEncoder instance based on supplied hash.Hash and Encoder supplying functions.
-func New(hash hash.Hash, enc Encoder) HashEncoder {
- hashSize := hash.Size()
- return &henc{
- hash: hash,
- hbuf: make([]byte, hashSize),
- enc: enc,
- size: enc.EncodedLen(hashSize),
- }
-}
-
-// henc is the HashEncoder implementation.
-type henc struct {
- hash hash.Hash
- hbuf []byte
- enc Encoder
- size int
-}
-
-func (henc *henc) EncodeSum(dst []byte, src []byte) {
- // Hash supplied bytes
- henc.hash.Reset()
- henc.hash.Write(src)
- henc.hbuf = henc.hash.Sum(henc.hbuf[:0])
-
- // Encode the hashsum and return a copy
- henc.enc.Encode(dst, henc.hbuf)
-}
-
-func (henc *henc) EncodedSum(src []byte) bytes.Bytes {
- dst := make([]byte, henc.size)
- henc.EncodeSum(dst, src)
- return bytes.ToBytes(dst)
-}
-
-func (henc *henc) Size() int {
- return henc.size
-}