You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Zero/ZeroLevel/Services/MemoryPools/Collections/Specialized/PoolingNodeCanon.cs

36 lines
764 B

namespace MemoryPools.Collections.Specialized
{
internal sealed class PoolingNodeCanon<T> : PoolingNodeBase<object>, IPoolingNode<T> where T : class
{
IPoolingNode<T> IPoolingNode<T>.Next
{
get => (IPoolingNode<T>) Next;
set => Next = (IPoolingNode<object>) value;
}
T IPoolingNode<T>.this[int index]
{
get => (T)_buf.Memory.Span[index];
set => _buf.Memory.Span[index] = value;
}
IPoolingNode<T> IPoolingNode<T>.Init(int capacity)
{
this.Init(capacity);
return this;
}
public override void Dispose()
{
base.Dispose();
Pool<PoolingNodeCanon<T>>.Return(this);
}
public override IPoolingNode<object> Init(int capacity)
{
Next = null!;
_buf = Pool.GetBuffer<object>(capacity);
return this;
}
}
}

Powered by TurnKey Linux.