diff options
author | ale <ale@incal.net> | 2017-12-18 22:35:16 +0000 |
---|---|---|
committer | ale <ale@incal.net> | 2017-12-18 22:35:16 +0000 |
commit | 445bf898d2015d1e28e5f01ef07b26be9dd42bf1 (patch) | |
tree | 05bae03d8625be5dee79ac408cf96b6ffae97840 /vendor/github.com/syndtr/goleveldb/leveldb/util/crc32.go | |
parent | 394de2d98a9cfde6244620f0b188625b60f68f96 (diff) | |
download | crawl-445bf898d2015d1e28e5f01ef07b26be9dd42bf1.tar.gz crawl-445bf898d2015d1e28e5f01ef07b26be9dd42bf1.zip |
Add vendor deps
Diffstat (limited to 'vendor/github.com/syndtr/goleveldb/leveldb/util/crc32.go')
-rw-r--r-- | vendor/github.com/syndtr/goleveldb/leveldb/util/crc32.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/util/crc32.go b/vendor/github.com/syndtr/goleveldb/leveldb/util/crc32.go new file mode 100644 index 0000000..631c9d6 --- /dev/null +++ b/vendor/github.com/syndtr/goleveldb/leveldb/util/crc32.go @@ -0,0 +1,30 @@ +// Copyright 2011 The LevelDB-Go Authors. All rights reserved. +// +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package util + +import ( + "hash/crc32" +) + +var table = crc32.MakeTable(crc32.Castagnoli) + +// CRC is a CRC-32 checksum computed using Castagnoli's polynomial. +type CRC uint32 + +// NewCRC creates a new crc based on the given bytes. +func NewCRC(b []byte) CRC { + return CRC(0).Update(b) +} + +// Update updates the crc with the given bytes. +func (c CRC) Update(b []byte) CRC { + return CRC(crc32.Update(uint32(c), table, b)) +} + +// Value returns a masked crc. +func (c CRC) Value() uint32 { + return uint32(c>>15|c<<17) + 0xa282ead8 +} |