public static uint Calculate()

in src/DotPulsar/Internal/Crc32C.cs [43:91]


    public static uint Calculate(ReadOnlySequence<byte> sequence)
    {
        var block = new uint[16];
        var checksum = uint.MaxValue;
        var remaningBytes = sequence.Length;
        var readingBlock = remaningBytes >= 16;
        var offset = 15;

        foreach (var memory in sequence)
        {
            var span = memory.Span;

            for (var i = 0; i < span.Length; ++i)
            {
                var currentByte = span[i];

                if (!readingBlock)
                {
                    checksum = _lookup[(byte) (checksum ^ currentByte)] ^ (checksum >> 8);
                    continue;
                }

                var offSetBase = offset * 256;

                if (offset > 11)
                    block[offset] = _lookup[offSetBase + ((byte) (checksum >> (8 * (15 - offset))) ^ currentByte)];
                else
                    block[offset] = _lookup[offSetBase + currentByte];

                --remaningBytes;

                if (offset == 0)
                {
                    offset = 15;
                    readingBlock = remaningBytes >= 16;
                    checksum = 0;

                    for (var j = 0; j < block.Length; ++j)
                        checksum ^= block[j];
                }
                else
                {
                    --offset;
                }
            }
        }

        return checksum ^ uint.MaxValue;
    }