using System; using System.IO; using System.Threading.Tasks; using Wabbajack.Common; namespace Compression.BSA { public class MemoryStreamFactory : IStreamFactory { private readonly MemoryStream _data; public MemoryStreamFactory(MemoryStream data, IPath path) { _data = data; Name = path; } public async ValueTask GetStream() { return new MemoryStream(_data.GetBuffer(), 0, (int)_data.Length); } public DateTime LastModifiedUtc => DateTime.UtcNow; public IPath Name { get; } } public class MemoryBufferFactory : IStreamFactory { private readonly byte[] _data; private int _size; public MemoryBufferFactory(byte[] data, int size, IPath path) { _data = data; _size = size; Name = path; } public async ValueTask GetStream() { return new MemoryStream(_data, 0, _size); } public DateTime LastModifiedUtc => DateTime.UtcNow; public IPath Name { get; } } }