namespace Wabbajack.Common.CSP { public class FixedSizeBuffer<T> : IBuffer<T> { private int _size; private RingBuffer<T> _buffer; public FixedSizeBuffer(int size) { _size = size; _buffer = new RingBuffer<T>(size); } public void Dispose() { } public bool IsFull => _buffer.Length >= _size; public bool IsEmpty => _buffer.IsEmpty; public T Remove() { return _buffer.Pop(); } public void Add(T itm) { _buffer.UnboundedUnshift(itm); } } }