using System; using System.Threading; using System.Threading.Tasks; namespace Xtremegaida.DataStructures; public interface IDataQueueReader : IDisposable { long UnreadLength { get; } bool IsReadClosed { get; } long TotalBytesRead { get; } ValueTask ReadByteAsync(CancellationToken cancellationToken = default); ValueTask ReadAsync(Memory buffer, bool waitUntilFull = false, CancellationToken cancellationToken = default); ValueTask ReadAsync(int skipBytes, CancellationToken cancellationToken = default); }