public unsafe uint ReadSegments(nsWriteSegmentFun aWriter, IntPtr aClosure, uint aCount)
{
int length = (int)Math.Min(aCount, Available());
int writeCount = 0;
if (length > 0)
{
nsWriteSegmentFun fun = aWriter;
fixed (byte* data = &Data[Position])
{
fun(this, aClosure, (IntPtr)data, Position, length, out writeCount);
}
Position += writeCount;
}
return (uint)writeCount;
}