BufferScope<T>
Allows renting a buffer from  ArrayPool<T> with a using statement. Can be used directly as if it
             were a  Span<T>.
            
                
Create the  BufferScope<T> with an initial buffer. Useful for creating with an initial stack
             allocated buffer.
            
Create the  BufferScope<T> with an initial buffer. Useful for creating with an initial stack
             allocated buffer.
            
Ensure that the buffer has enough space for capacity number of elements.