gnablib
Version:
A lean, zero dependency library to provide a useful base for your project.
2 lines • 533 B
JavaScript
/*! Copyright 2023-2025 the gnablib contributors MPL-1.1 */
const r=function(r){const t=new Uint32Array(256);for(let c=0;c<256;c++){let s=c;s=s>>>1^(1&s)*r,s=s>>>1^(1&s)*r,s=s>>>1^(1&s)*r,s=s>>>1^(1&s)*r,s=s>>>1^(1&s)*r,s=s>>>1^(1&s)*r,s=s>>>1^(1&s)*r,s=s>>>1^(1&s)*r,t[c]=s}return t}(3988292384);export class Crc32{constructor(){this._crc=4294967295,this.size=4}write(t){for(const c of t)this._crc=this._crc>>>8^r[255&(this._crc^c)]}sum32(){return~this._crc>>>0}sum(){const r=~this._crc;return Uint8Array.of(r>>>24,r>>>16,r>>>8,r)}}