aboutsummaryrefslogtreecommitdiff
path: root/generator/protoc_gen_nim.nim
diff options
context:
space:
mode:
authorOskari Timperi <oskari.timperi@iki.fi>2018-04-02 11:27:01 +0300
committerOskari Timperi <oskari.timperi@iki.fi>2018-04-02 11:27:01 +0300
commitcd0f4d6d17356c16ef9ce88c8175b573e8cc95b8 (patch)
tree0667e34d3eb2840b0cb68d9896dbcb48f67fa859 /generator/protoc_gen_nim.nim
parent494461fd551b0c70712a0aa0d7278e99e215c172 (diff)
downloadnimpb-cd0f4d6d17356c16ef9ce88c8175b573e8cc95b8.tar.gz
nimpb-cd0f4d6d17356c16ef9ce88c8175b573e8cc95b8.zip
Sort enum values in ascending order
This is what Nim expects.
Diffstat (limited to 'generator/protoc_gen_nim.nim')
-rw-r--r--generator/protoc_gen_nim.nim6
1 files changed, 6 insertions, 0 deletions
diff --git a/generator/protoc_gen_nim.nim b/generator/protoc_gen_nim.nim
index 07f5e84..b175313 100644
--- a/generator/protoc_gen_nim.nim
+++ b/generator/protoc_gen_nim.nim
@@ -314,6 +314,12 @@ proc newEnum(names: Names, desc: EnumDescriptorProto): Enum =
for value in desc.value:
add(result.values, (value.name, int(value.number)))
+ type EnumValue = tuple[name: string, number: int]
+
+ sort(result.values, proc (x, y: EnumValue): int =
+ system.cmp(x.number, y.number)
+ )
+
iterator messages(desc: DescriptorProto, names: Names): tuple[names: Names, desc: DescriptorProto] =
var stack: seq[tuple[names: Names, desc: DescriptorProto]] = @[]