Skip to content

Commit 7c08cde

Browse files
committed
Finalize Base64
1 parent 3d2230d commit 7c08cde

1 file changed

Lines changed: 11 additions & 12 deletions

File tree

src/BinaryToText/Base64.cs

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using System.Threading.Tasks;
99
using Internal;
1010
using Resources;
11+
using NetBase64 = System.Buffers.Text.Base64;
1112

1213
/// <summary>Provides functionality for encoding data into the Base-64 text representations and back.</summary>
1314
/// <remarks><b>Performance:</b> Highly optimized. Base64 encodes data in independent 3-byte groups with no serial dependency chain, making it amenable to SIMD vectorization and parallel processing. Encoding and decoding leverage .NET's hardware-accelerated <see cref="System.Buffers.Text.Base64"/> implementation (AVX2 on supported hardware) across multiple cores.</remarks>
@@ -74,12 +75,11 @@ public override void EncodeStream(Stream inputStream, Stream outputStream, int l
7475
// Each chunk slot: ChunkSize/3*4+4 bytes
7576
var outStart = i * (ChunkSize / 3 * 4 + 4);
7677

77-
System.Buffers.Text.Base64.EncodeToUtf8(
78-
inputBufs[slot].AsSpan(inputStart, procLen),
79-
outputBufs[slot].AsSpan(outStart),
80-
out _,
81-
out var written,
82-
isFinal);
78+
NetBase64.EncodeToUtf8(inputBufs[slot].AsSpan(inputStart, procLen),
79+
outputBufs[slot].AsSpan(outStart),
80+
out _,
81+
out var written,
82+
isFinal);
8383

8484
chunkSizes[slot][i] = written;
8585
});
@@ -247,12 +247,11 @@ public override void DecodeStream(Stream inputStream, Stream outputStream, bool
247247
var endGroup = bounds[i + 1];
248248
var isFinal = i == numChunks - 1 && isLastBatch;
249249

250-
System.Buffers.Text.Base64.DecodeFromUtf8(
251-
cBuf.AsSpan(startGroup * 4, (endGroup - startGroup) * 4),
252-
ob.AsSpan(startGroup * 3),
253-
out _,
254-
out var written,
255-
isFinal);
250+
NetBase64.DecodeFromUtf8(cBuf.AsSpan(startGroup * 4, (endGroup - startGroup) * 4),
251+
ob.AsSpan(startGroup * 3),
252+
out _,
253+
out var written,
254+
isFinal);
256255

257256
sizes[i] = written;
258257
});

0 commit comments

Comments
 (0)