diff --git a/src/SharpCompress/Archives/IAsyncArchiveExtensions.cs b/src/SharpCompress/Archives/IAsyncArchiveExtensions.cs index df4cb05c..7a930bb0 100644 --- a/src/SharpCompress/Archives/IAsyncArchiveExtensions.cs +++ b/src/SharpCompress/Archives/IAsyncArchiveExtensions.cs @@ -20,7 +20,7 @@ public static class IAsyncArchiveExtensions /// Extraction options. /// Optional progress reporter for tracking extraction progress. /// Optional cancellation token. - public async Task WriteToDirectoryAsync( + public async ValueTask WriteToDirectoryAsync( string destinationDirectory, ExtractionOptions? options = null, IProgress? progress = null, @@ -47,7 +47,7 @@ public static class IAsyncArchiveExtensions } } - private async Task WriteToDirectoryAsyncInternal( + private async ValueTask WriteToDirectoryAsyncInternal( string destinationDirectory, ExtractionOptions? options, IProgress? progress, diff --git a/src/SharpCompress/Archives/SevenZip/SevenZipArchive.cs b/src/SharpCompress/Archives/SevenZip/SevenZipArchive.cs index 60c843d6..ad92f806 100644 --- a/src/SharpCompress/Archives/SevenZip/SevenZipArchive.cs +++ b/src/SharpCompress/Archives/SevenZip/SevenZipArchive.cs @@ -119,7 +119,7 @@ public partial class SevenZipArchive : AbstractArchive GetByteAsync(Stream stream, CancellationToken cancellationToken) + private static async ValueTask GetByteAsync( + Stream stream, + CancellationToken cancellationToken + ) { var buffer = new byte[1]; var bytesRead = await stream diff --git a/src/SharpCompress/Common/SevenZip/ArchiveReader.cs b/src/SharpCompress/Common/SevenZip/ArchiveReader.cs index 28762ace..f5f82ab8 100644 --- a/src/SharpCompress/Common/SevenZip/ArchiveReader.cs +++ b/src/SharpCompress/Common/SevenZip/ArchiveReader.cs @@ -1272,7 +1272,7 @@ internal class ArchiveReader _stream = stream; } - public async Task OpenAsync( + public async ValueTask OpenAsync( Stream stream, bool lookForHeader, CancellationToken cancellationToken = default @@ -1425,7 +1425,7 @@ internal class ArchiveReader return db; } - public async Task ReadDatabaseAsync( + public async ValueTask ReadDatabaseAsync( IPasswordProvider pass, CancellationToken cancellationToken = default ) diff --git a/src/SharpCompress/Common/Tar/Headers/TarHeader.cs b/src/SharpCompress/Common/Tar/Headers/TarHeader.cs index 00e5edae..4c006abc 100644 --- a/src/SharpCompress/Common/Tar/Headers/TarHeader.cs +++ b/src/SharpCompress/Common/Tar/Headers/TarHeader.cs @@ -497,7 +497,7 @@ internal sealed class TarHeader return true; } - internal async Task ReadAsync(AsyncBinaryReader reader) + internal async ValueTask ReadAsync(AsyncBinaryReader reader) { string? longName = null; string? longLinkName = null; @@ -637,7 +637,7 @@ internal sealed class TarHeader } } - private async Task ReadLongNameAsync(AsyncBinaryReader reader, byte[] buffer) + private async ValueTask ReadLongNameAsync(AsyncBinaryReader reader, byte[] buffer) { var size = ReadSize(buffer); diff --git a/src/SharpCompress/Common/Zip/ZipFilePart.cs b/src/SharpCompress/Common/Zip/ZipFilePart.cs index 31f5a196..69ba27bc 100644 --- a/src/SharpCompress/Common/Zip/ZipFilePart.cs +++ b/src/SharpCompress/Common/Zip/ZipFilePart.cs @@ -289,7 +289,7 @@ internal abstract class ZipFilePart : FilePart return decompressionStream; } - protected async Task GetCryptoStreamAsync( + protected async ValueTask GetCryptoStreamAsync( Stream plainStream, CancellationToken cancellationToken = default ) @@ -362,7 +362,7 @@ internal abstract class ZipFilePart : FilePart return plainStream; } - protected async Task CreateDecompressionStreamAsync( + protected async ValueTask CreateDecompressionStreamAsync( Stream stream, ZipCompressionMethod method, CancellationToken cancellationToken = default diff --git a/src/SharpCompress/Compressors/Arj/BitReader.cs b/src/SharpCompress/Compressors/Arj/BitReader.cs index d808d93a..87c1a7eb 100644 --- a/src/SharpCompress/Compressors/Arj/BitReader.cs +++ b/src/SharpCompress/Compressors/Arj/BitReader.cs @@ -65,7 +65,7 @@ namespace SharpCompress.Compressors.Arj /// /// Asynchronously reads a single bit from the stream. Returns 0 or 1. /// - public async Task ReadBitAsync(CancellationToken cancellationToken) + public async ValueTask ReadBitAsync(CancellationToken cancellationToken) { if (_bitCount == 0) { @@ -90,7 +90,7 @@ namespace SharpCompress.Compressors.Arj /// /// Asynchronously reads n bits (up to 32) from the stream. /// - public async Task ReadBitsAsync(int count, CancellationToken cancellationToken) + public async ValueTask ReadBitsAsync(int count, CancellationToken cancellationToken) { if (count < 0 || count > 32) { diff --git a/src/SharpCompress/Compressors/Arj/LHDecoderStream.cs b/src/SharpCompress/Compressors/Arj/LHDecoderStream.cs index fa6bf754..27d1af3c 100644 --- a/src/SharpCompress/Compressors/Arj/LHDecoderStream.cs +++ b/src/SharpCompress/Compressors/Arj/LHDecoderStream.cs @@ -120,7 +120,7 @@ namespace SharpCompress.Compressors.Arj /// Asynchronously decodes a single element (literal or back-reference) and appends it to _buffer. /// Returns true if data was added, or false if all input has already been decoded. /// - private async Task DecodeNextAsync(CancellationToken cancellationToken) + private async ValueTask DecodeNextAsync(CancellationToken cancellationToken) { if (_buffer.Count >= _originalSize) { @@ -176,7 +176,7 @@ namespace SharpCompress.Compressors.Arj return res + add; } - private async Task DecodeValAsync( + private async ValueTask DecodeValAsync( int from, int to, CancellationToken cancellationToken diff --git a/src/SharpCompress/Compressors/BZip2/BZip2Stream.cs b/src/SharpCompress/Compressors/BZip2/BZip2Stream.cs index cde6e300..e7627c2a 100644 --- a/src/SharpCompress/Compressors/BZip2/BZip2Stream.cs +++ b/src/SharpCompress/Compressors/BZip2/BZip2Stream.cs @@ -76,7 +76,7 @@ public sealed class BZip2Stream : Stream, IStreamStack /// Compression Mode /// Decompress Concatenated /// Cancellation Token - public static async Task CreateAsync( + public static async ValueTask CreateAsync( Stream stream, CompressionMode compressionMode, bool decompressConcatenated, diff --git a/src/SharpCompress/Compressors/Lzw/LzwStream.cs b/src/SharpCompress/Compressors/Lzw/LzwStream.cs index 74074a66..ec29263d 100644 --- a/src/SharpCompress/Compressors/Lzw/LzwStream.cs +++ b/src/SharpCompress/Compressors/Lzw/LzwStream.cs @@ -671,7 +671,7 @@ namespace SharpCompress.Compressors.Lzw } } - private async Task FillAsync(CancellationToken cancellationToken) + private async ValueTask FillAsync(CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); got = await baseInputStream @@ -744,7 +744,7 @@ namespace SharpCompress.Compressors.Lzw tabSuffix[idx] = (byte)idx; } - private async Task ParseHeaderAsync(CancellationToken cancellationToken) + private async ValueTask ParseHeaderAsync(CancellationToken cancellationToken) { headerParsed = true; diff --git a/src/SharpCompress/Compressors/Rar/RarBLAKE2spStream.cs b/src/SharpCompress/Compressors/Rar/RarBLAKE2spStream.cs index 57be3533..906a29eb 100644 --- a/src/SharpCompress/Compressors/Rar/RarBLAKE2spStream.cs +++ b/src/SharpCompress/Compressors/Rar/RarBLAKE2spStream.cs @@ -134,7 +134,7 @@ internal class RarBLAKE2spStream : RarStream, IStreamStack return stream; } - public static async Task CreateAsync( + public static async ValueTask CreateAsync( IRarUnpack unpack, FileHeader fileHeader, MultiVolumeReadOnlyAsyncStream readStream, diff --git a/src/SharpCompress/Compressors/Rar/RarCrcStream.cs b/src/SharpCompress/Compressors/Rar/RarCrcStream.cs index 00753d05..535c29fb 100644 --- a/src/SharpCompress/Compressors/Rar/RarCrcStream.cs +++ b/src/SharpCompress/Compressors/Rar/RarCrcStream.cs @@ -59,7 +59,7 @@ internal class RarCrcStream : RarStream, IStreamStack return stream; } - public static async Task CreateAsync( + public static async ValueTask CreateAsync( IRarUnpack unpack, FileHeader fileHeader, MultiVolumeReadOnlyStreamBase readStream, diff --git a/src/SharpCompress/Compressors/Xz/BinaryUtils.cs b/src/SharpCompress/Compressors/Xz/BinaryUtils.cs index 12cb2958..bb9cb412 100644 --- a/src/SharpCompress/Compressors/Xz/BinaryUtils.cs +++ b/src/SharpCompress/Compressors/Xz/BinaryUtils.cs @@ -32,7 +32,7 @@ public static class BinaryUtils internal static uint ReadLittleEndianUInt32(this Stream stream) => unchecked((uint)ReadLittleEndianInt32(stream)); - public static async Task ReadLittleEndianInt32Async( + public static async ValueTask ReadLittleEndianInt32Async( this Stream stream, CancellationToken cancellationToken = default ) @@ -46,7 +46,7 @@ public static class BinaryUtils return BinaryPrimitives.ReadInt32LittleEndian(bytes); } - internal static async Task ReadLittleEndianUInt32Async( + internal static async ValueTask ReadLittleEndianUInt32Async( this Stream stream, CancellationToken cancellationToken = default ) => diff --git a/src/SharpCompress/Compressors/Xz/MultiByteIntegers.cs b/src/SharpCompress/Compressors/Xz/MultiByteIntegers.cs index 6f7a863b..dbdb51f3 100644 --- a/src/SharpCompress/Compressors/Xz/MultiByteIntegers.cs +++ b/src/SharpCompress/Compressors/Xz/MultiByteIntegers.cs @@ -42,7 +42,7 @@ internal static class MultiByteIntegers return Output; } - public static async Task ReadXZIntegerAsync( + public static async ValueTask ReadXZIntegerAsync( this BinaryReader reader, CancellationToken cancellationToken = default, int MaxBytes = 9 diff --git a/src/SharpCompress/Compressors/Xz/XZFooter.cs b/src/SharpCompress/Compressors/Xz/XZFooter.cs index 67b68be7..372e0d63 100644 --- a/src/SharpCompress/Compressors/Xz/XZFooter.cs +++ b/src/SharpCompress/Compressors/Xz/XZFooter.cs @@ -29,7 +29,7 @@ public class XZFooter return footer; } - public static async Task FromStreamAsync( + public static async ValueTask FromStreamAsync( Stream stream, CancellationToken cancellationToken = default ) diff --git a/src/SharpCompress/Compressors/Xz/XZHeader.cs b/src/SharpCompress/Compressors/Xz/XZHeader.cs index 39f706b1..e855368f 100644 --- a/src/SharpCompress/Compressors/Xz/XZHeader.cs +++ b/src/SharpCompress/Compressors/Xz/XZHeader.cs @@ -25,7 +25,7 @@ public class XZHeader return header; } - public static async Task FromStreamAsync( + public static async ValueTask FromStreamAsync( Stream stream, CancellationToken cancellationToken = default ) diff --git a/src/SharpCompress/Compressors/Xz/XZIndexRecord.cs b/src/SharpCompress/Compressors/Xz/XZIndexRecord.cs index 14e76eb8..355af2a8 100644 --- a/src/SharpCompress/Compressors/Xz/XZIndexRecord.cs +++ b/src/SharpCompress/Compressors/Xz/XZIndexRecord.cs @@ -21,7 +21,7 @@ public class XZIndexRecord return record; } - public static async Task FromBinaryReaderAsync( + public static async ValueTask FromBinaryReaderAsync( BinaryReader br, CancellationToken cancellationToken = default ) diff --git a/src/SharpCompress/Readers/AbstractReader.cs b/src/SharpCompress/Readers/AbstractReader.cs index 7572efd8..ed495d42 100644 --- a/src/SharpCompress/Readers/AbstractReader.cs +++ b/src/SharpCompress/Readers/AbstractReader.cs @@ -435,7 +435,7 @@ public abstract class AbstractReader : IReader, IAsyncReader protected virtual EntryStream GetEntryStream() => CreateEntryStream(Entry.Parts.First().GetCompressedStream()); - protected virtual async Task GetEntryStreamAsync( + protected virtual async ValueTask GetEntryStreamAsync( CancellationToken cancellationToken = default ) { diff --git a/src/SharpCompress/Readers/Rar/RarReader.cs b/src/SharpCompress/Readers/Rar/RarReader.cs index 3b0575d1..dc2909b9 100644 --- a/src/SharpCompress/Readers/Rar/RarReader.cs +++ b/src/SharpCompress/Readers/Rar/RarReader.cs @@ -128,7 +128,7 @@ public abstract partial class RarReader : AbstractReader GetEntryStreamAsync( + protected override async System.Threading.Tasks.ValueTask GetEntryStreamAsync( System.Threading.CancellationToken cancellationToken = default ) {