From 6aaeed4dca6e193cce96b0a3a70647aa48fb835b Mon Sep 17 00:00:00 2001 From: Ruslan Mustakov Date: Sun, 6 Aug 2017 13:58:54 +0700 Subject: [PATCH] Add missing $ to standard types --- godot/core/arrays.nim | 15 +++++++----- godot/core/dictionaries.nim | 11 +++++++++ godot/core/rids.nim | 3 +++ godot/core/variants.nim | 7 +++--- godot/internal/godotarrays.nim | 41 ++++++++++++++++++++------------ godot/internal/godotvariants.nim | 5 ++++ 6 files changed, 58 insertions(+), 24 deletions(-) diff --git a/godot/core/arrays.nim b/godot/core/arrays.nim index 58c3942..5157e50 100644 --- a/godot/core/arrays.nim +++ b/godot/core/arrays.nim @@ -134,10 +134,13 @@ proc len*(self: Array): int {.inline.} = proc sort*(self: var Array) {.inline.} = self.godotArray.sort() -iterator items*(arr: Array): Variant = - for i in 0.. 1: + result.add(", ") + result.add($k) + result.add(": ") + result.add($v) + result.add('}') diff --git a/godot/core/rids.nim b/godot/core/rids.nim index aece8c5..6ec5b86 100644 --- a/godot/core/rids.nim +++ b/godot/core/rids.nim @@ -22,6 +22,9 @@ proc idCInt(self: RID): cint {. proc id*(self: RID): uint32 {.inline.} = cast[uint32](self.idCInt()) +proc `$`*(self: RID): string = + $self.id + proc `==`*(a, b: RID): bool {. importc: "godot_rid_operator_equal".} proc `<`*(a, b: RID): bool {. diff --git a/godot/core/variants.nim b/godot/core/variants.nim index 6e875c3..1f0d752 100644 --- a/godot/core/variants.nim +++ b/godot/core/variants.nim @@ -27,6 +27,9 @@ proc variantFinalizer*(v: Variant) = if not v.noDeinit: v.godotVariant.deinit() +proc `$`*(self: Variant): string {.inline.} = + $self.godotVariant + proc newVariant*(): Variant {.inline.} = new(result, variantFinalizer) initGodotVariant(result.godotVariant) @@ -174,9 +177,7 @@ proc asReal*(self: Variant): cdouble = self.godotVariant.asReal() proc asString*(self: Variant): string = - var s = self.godotVariant.asGodotString() - result = $s - s.deinit() + $self proc asVector2*(self: Variant): Vector2 = self.godotVariant.asVector2() diff --git a/godot/internal/godotarrays.nim b/godot/internal/godotarrays.nim index ac53bfb..d6ee910 100644 --- a/godot/internal/godotarrays.nim +++ b/godot/internal/godotarrays.nim @@ -4,6 +4,10 @@ type GodotArray* {.byref.} = object data: array[sizeof(int), byte] +proc len*(self: GodotArray): cint {. + noSideEffect, + importc: "godot_array_size".} + import hashes import godotobjects, godotpoolarrays, godotvariants, godotstrings @@ -94,26 +98,33 @@ proc rfind*(self: GodotArray; what: GodotVariant; f: cint): cint {. noSideEffect, importc: "godot_array_rfind".} -proc len*(self: GodotArray): cint {. - noSideEffect, - importc: "godot_array_size".} proc sort*(self: var GodotArray) {.importc: "godot_array_sort".} proc sortCustom*(self: var GodotArray; obj: var GodotObject; funcName: GodotString) {. importc: "godot_array_sort_custom".} -iterator items*(arr: GodotArray): GodotVariant = - for i in 0.. 1: + result.add(", ") + result.add($item) + result.add(']') diff --git a/godot/internal/godotvariants.nim b/godot/internal/godotvariants.nim index 81ce797..388c4b3 100644 --- a/godot/internal/godotvariants.nim +++ b/godot/internal/godotvariants.nim @@ -191,3 +191,8 @@ proc hashCompare*(self, other: GodotVariant): bool {. importc: "godot_variant_hash_compare".} proc booleanize*(self: GodotVariant; isValid: var bool): bool {. importc: "godot_variant_booleanize".} + +proc `$`*(self: GodotVariant): string = + var s = self.asGodotString() + result = $s + s.deinit()