OrderedTable to Variant conversion support
This commit is contained in:
parent
ceaf66a34c
commit
859f9f04fb
2 changed files with 9 additions and 5 deletions
|
|
@ -1,4 +1,4 @@
|
|||
version = "0.7.16"
|
||||
version = "0.7.17"
|
||||
author = "Xored Software, Inc."
|
||||
description = "Godot Engine bindings"
|
||||
license = "MIT"
|
||||
|
|
|
|||
|
|
@ -791,10 +791,10 @@ proc fromVariant*[T: array](s: var T, val: Variant): ConversionResult =
|
|||
else:
|
||||
result = ConversionResult.TypeError
|
||||
|
||||
proc godotTypeInfo*(T: typedesc[Table|TableRef]): GodotTypeInfo {.inline.} =
|
||||
proc godotTypeInfo*(T: typedesc[Table|TableRef|OrderedTable|OrderedTableRef]): GodotTypeInfo {.inline.} =
|
||||
result.variantType = VariantType.Dictionary
|
||||
|
||||
proc toVariant*[T: Table or TableRef](t: T): Variant =
|
||||
proc toVariant*[T: Table or TableRef or OrderedTable or OrderedTableRef](t: T): Variant =
|
||||
when t is ref:
|
||||
if t.isNil:
|
||||
return newVariant()
|
||||
|
|
@ -804,7 +804,7 @@ proc toVariant*[T: Table or TableRef](t: T): Variant =
|
|||
dict[toVariant(k)] = toVariant(v)
|
||||
result = newVariant(dict)
|
||||
|
||||
proc fromVariant*[T: Table or TableRef](t: var T,
|
||||
proc fromVariant*[T: Table or TableRef or OrderedTable or OrderedTableRef](t: var T,
|
||||
val: Variant): ConversionResult =
|
||||
if val.getType() == VariantType.Nil:
|
||||
when t is ref:
|
||||
|
|
@ -814,8 +814,12 @@ proc fromVariant*[T: Table or TableRef](t: var T,
|
|||
mixin fromVariant
|
||||
when t is Table:
|
||||
t = initTable[type(t.keys()), type(t.values())]()
|
||||
else:
|
||||
elif t is TableRef:
|
||||
t = newTable[type(t.keys()), type(t.values())]()
|
||||
elif t is OrderedTable:
|
||||
t = initOrderedTable[type(t.keys()), type(t.values())]()
|
||||
else:
|
||||
t = newOrderedTable[type(t.keys()), type(t.values())]()
|
||||
for k, v in dict:
|
||||
var nimKey: type(t.keys())
|
||||
var nimVal: type(t.values())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue