add alloc copy slice

This commit is contained in:
Matthew 2025-10-04 09:09:52 +10:00
parent ca5e84f8b9
commit 2af4a29314

24
alloc.d
View File

@ -90,6 +90,14 @@ AllocCopy(T)(T[] target)
return arr; return arr;
} }
T[]
AllocCopySlice(T)(T[] target, u64 start, u64 len)
{
T[] arr = Alloc!(T)(len);
arr[0 .. $] = target[start .. start+len];
return arr;
}
T[] T[]
AllocArray(T)(u64 count) AllocArray(T)(u64 count)
{ {
@ -218,6 +226,14 @@ AllocCopy(T)(Arena* arena, T[] target)
return arr; return arr;
} }
T[]
AllocCopySlice(T)(Arena* arena, T[] target, u64 start, u64 len)
{
T[] arr = Alloc!(T)(arena, len);
arr[0 .. $] = target[start .. start+len];
return arr;
}
T* T*
Alloc(T)(Arena* arena) Alloc(T)(Arena* arena)
{ {
@ -330,6 +346,14 @@ ScratchAllocCopy(T)(T[] target)
return arr; return arr;
} }
T[]
ScratchAllocCopySlice(T)(T[] target, u64 start, u64 len)
{
T[] arr = ScratchAlloc!(T)(len);
arr[0 .. $] = target[start .. start+len];
return arr;
}
unittest unittest
{ {
{ {