Add varargs and openarray constructors for Array

This commit is contained in:
Ruslan Mustakov 2017-08-04 12:21:22 +07:00
commit fedd04229a

View file

@ -15,14 +15,23 @@ proc godotArray*(arr: Array): ptr GodotArray {.inline.} =
proc arrayFinalizer(arr: Array) =
arr.godotArray.deinit()
proc newArray*(): Array {.inline.} =
new(result, arrayFinalizer)
initGodotArray(result.godotArray)
proc newArray*(arr: GodotArray): Array {.inline.} =
new(result, arrayFinalizer)
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
proc newArray*(pca: PoolColorArray): Array {.inline.} =
@ -53,8 +62,6 @@ proc newArray*(pba: PoolByteArray): Array {.inline.} =
new(result, arrayFinalizer)
initGodotArray(result.godotArray, pba.godotPoolByteArray[])
import variants
proc `[]=`*(self: var Array; idx: int; value: Variant) {.inline.} =
self.godotArray[idx.cint] = value.godotVariant[]