diff options
Diffstat (limited to 'vendor/codeberg.org/gruf/go-hashenc/hashenc.go')
-rw-r--r-- | vendor/codeberg.org/gruf/go-hashenc/hashenc.go | 58 |
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 -} |