aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOskari Timperi <oskari.timperi@iki.fi>2018-04-02 11:29:17 +0300
committerOskari Timperi <oskari.timperi@iki.fi>2018-04-02 11:29:17 +0300
commit15825dac0392788e7a7e7782daeb7d8184d7e0ca (patch)
treedd2aa4c23da4f5ee8541cbbd7aba7a5ed1bdfb9f
parentcd0f4d6d17356c16ef9ce88c8175b573e8cc95b8 (diff)
downloadnimpb-15825dac0392788e7a7e7782daeb7d8184d7e0ca.tar.gz
nimpb-15825dac0392788e7a7e7782daeb7d8184d7e0ca.zip
Forward declare KV write/read/sizeOf procs
-rw-r--r--generator/protoc_gen_nim.nim9
1 files changed, 9 insertions, 0 deletions
diff --git a/generator/protoc_gen_nim.nim b/generator/protoc_gen_nim.nim
index b175313..227005e 100644
--- a/generator/protoc_gen_nim.nim
+++ b/generator/protoc_gen_nim.nim
@@ -775,6 +775,15 @@ iterator genMessageProcForwards(msg: Message): string =
yield &"proc read{msg.names}*(stream: ProtobufStream): {msg.names}"
yield &"proc sizeOf{msg.names}*(message: {msg.names}): uint64"
+ if isMapEntry(msg):
+ let
+ key = mapKeyField(msg)
+ value = mapValueField(msg)
+
+ yield &"proc write{msg.names}KV(stream: ProtobufStream, key: {key.fullType}, value: {value.fullType})"
+ yield &"proc read{msg.names}KV(stream: ProtobufStream, tbl: TableRef[{key.fullType}, {value.fullType}])"
+ yield &"proc sizeOf{msg.names}KV(key: {key.fullType}, value: {value.fullType}): uint64"
+
iterator genProcs(msg: Message): string =
for line in genNewMessageProc(msg): yield line