package cityhash102 import ( "encoding/binary" "hash" ) type City64 struct { s []byte } var _ hash.Hash64 = (*City64)(nil) var _ hash.Hash = (*City64)(nil) func New64() hash.Hash64 { return &City64{} } func (this *City64) Sum(b []byte) []byte { b2 := make([]byte, 8) binary.BigEndian.PutUint64(b2, this.Sum64()) b = append(b, b2...) return b } func (this *City64) Sum64() uint64 { return CityHash64(this.s, uint32(len(this.s))) } func (this *City64) Reset() { this.s = this.s[0:0] } func (this *City64) BlockSize() int { return 1 } func (this *City64) Write(s []byte) (n int, err error) { this.s = append(this.s, s...) return len(s), nil } func (this *City64) Size() int { return 8 }