digester.go 586 B

1234567891011121314151617181920212223242526
  1. package digest
  2. import "hash"
  3. // Digester calculates the digest of written data. Writes should go directly
  4. // to the return value of Hash, while calling Digest will return the current
  5. // value of the digest.
  6. type Digester interface {
  7. Hash() hash.Hash // provides direct access to underlying hash instance.
  8. Digest() Digest
  9. }
  10. // digester provides a simple digester definition that embeds a hasher.
  11. type digester struct {
  12. alg Algorithm
  13. hash hash.Hash
  14. }
  15. func (d *digester) Hash() hash.Hash {
  16. return d.hash
  17. }
  18. func (d *digester) Digest() Digest {
  19. return NewDigest(d.alg, d.hash)
  20. }