Add varargs and openarray constructors for Array
This commit is contained in:
parent
0062568dbc
commit
fedd04229a
1 changed files with 13 additions and 6 deletions
|
|
@ -15,14 +15,23 @@ proc godotArray*(arr: Array): ptr GodotArray {.inline.} =
|
||||||
proc arrayFinalizer(arr: Array) =
|
proc arrayFinalizer(arr: Array) =
|
||||||
arr.godotArray.deinit()
|
arr.godotArray.deinit()
|
||||||
|
|
||||||
proc newArray*(): Array {.inline.} =
|
|
||||||
new(result, arrayFinalizer)
|
|
||||||
initGodotArray(result.godotArray)
|
|
||||||
|
|
||||||
proc newArray*(arr: GodotArray): Array {.inline.} =
|
proc newArray*(arr: GodotArray): Array {.inline.} =
|
||||||
new(result, arrayFinalizer)
|
new(result, arrayFinalizer)
|
||||||
result.godotArray = arr
|
result.godotArray = arr
|
||||||
|
|
||||||
|
import variants
|
||||||
|
|
||||||
|
proc newArray*(s: varargs[Variant]): Array =
|
||||||
|
new(result, arrayFinalizer)
|
||||||
|
initGodotArray(result.godotArray)
|
||||||
|
for v in s:
|
||||||
|
result.godotArray.add(v.godotVariant[])
|
||||||
|
|
||||||
|
proc newArray*(s: openarray[Variant]): Array =
|
||||||
|
result = newArray()
|
||||||
|
for v in s:
|
||||||
|
result.godotArray.add(v.godotVariant[])
|
||||||
|
|
||||||
import poolarrays
|
import poolarrays
|
||||||
|
|
||||||
proc newArray*(pca: PoolColorArray): Array {.inline.} =
|
proc newArray*(pca: PoolColorArray): Array {.inline.} =
|
||||||
|
|
@ -53,8 +62,6 @@ proc newArray*(pba: PoolByteArray): Array {.inline.} =
|
||||||
new(result, arrayFinalizer)
|
new(result, arrayFinalizer)
|
||||||
initGodotArray(result.godotArray, pba.godotPoolByteArray[])
|
initGodotArray(result.godotArray, pba.godotPoolByteArray[])
|
||||||
|
|
||||||
import variants
|
|
||||||
|
|
||||||
proc `[]=`*(self: var Array; idx: int; value: Variant) {.inline.} =
|
proc `[]=`*(self: var Array; idx: int; value: Variant) {.inline.} =
|
||||||
self.godotArray[idx.cint] = value.godotVariant[]
|
self.godotArray[idx.cint] = value.godotVariant[]
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue