<PackageReference Include="Azure.Storage.Blobs" Version="12.25.0-beta.1" />

StorageCrc64Composer

static class StorageCrc64Composer
Helper code for composing crc64 values together.
using System; using System.Collections.Generic; using System.Linq; namespace Azure.Storage { internal static class StorageCrc64Composer { public static Memory<byte> Compose(params(byte[] Crc64, long OriginalDataLength)[] partitions) { return Compose(partitions.AsEnumerable()); } public static Memory<byte> Compose(IEnumerable<(byte[] Crc64, long OriginalDataLength)> partitions) { return new Memory<byte>(BitConverter.GetBytes(Compose(from tup in (IEnumerable<(byte[], long)>)partitions select (BitConverter.ToUInt64(tup.Crc64, 0), tup.OriginalDataLength)))); } public static ulong Compose(IEnumerable<(ulong Crc64, long OriginalDataLength)> partitions) { ulong num = 0; long num2 = 0; foreach ((ulong, long) partition in partitions) { num = StorageCrc64Calculator.Concatenate(0, 0, num, (ulong)num2, 0, partition.Item1, (ulong)partition.Item2); num2 += partition.Item2; } return num; } } }