using UnmanagedMMU.Allocators;
namespace UnmanagedMMU.Handles
{
///
/// Interface that represents a typed handle to unmanaged memory.
///
///
/// The unmanaged element type stored in the underlying memory block.
///
public unsafe interface IMemoryHandle : IMemoryHandle, IDisposable where T : unmanaged
{
///
/// Gets the typed pointer to the underlying unmanaged memory block.
///
///
/// The pointer becomes invalid after the handle is disposed.
///
new T* Pointer { get; }
///
/// Gets the number of elements contained in this handle.
///
nuint Length { get; }
///
/// Returns the underlying unmanaged memory block held by this handle back to the owning instance
///
new void Dispose() { }
}
}