aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOskari Timperi <oskari.timperi@iki.fi>2018-04-01 17:37:04 +0300
committerOskari Timperi <oskari.timperi@iki.fi>2018-04-01 17:37:04 +0300
commit92eabcdb09ac19cbc2fdbdb9c6fe2a16071417c7 (patch)
treefa82b62d95ec67438fa3453387488e1c24453a81
parentc5badf9c9ce3e54ef05a257abd10847b40ce113a (diff)
downloadnimpb-92eabcdb09ac19cbc2fdbdb9c6fe2a16071417c7.tar.gz
nimpb-92eabcdb09ac19cbc2fdbdb9c6fe2a16071417c7.zip
Generate forward declarations for some procs
-rw-r--r--generator/protoc_gen_nim.nim11
1 files changed, 11 insertions, 0 deletions
diff --git a/generator/protoc_gen_nim.nim b/generator/protoc_gen_nim.nim
index 0a3c073..5a0d54e 100644
--- a/generator/protoc_gen_nim.nim
+++ b/generator/protoc_gen_nim.nim
@@ -755,6 +755,12 @@ if has{field.name}(message):
yield ""
+iterator genMessageProcForwards(msg: Message): string =
+ yield &"proc new{msg.names}*(): {msg.names}"
+ yield &"proc write{msg.names}*(stream: ProtobufStream, message: {msg.names})"
+ yield &"proc read{msg.names}*(stream: ProtobufStream): {msg.names}"
+ yield &"proc sizeOf{msg.names}*(message: {msg.names}): uint64"
+
iterator genProcs(msg: Message): string =
for line in genNewMessageProc(msg): yield line
@@ -846,6 +852,11 @@ proc processFile(filename: string, fdesc: FileDescriptorProto,
addLine(result.data, "")
for message in sortDependencies(parsed.messages):
+ for line in genMessageProcForwards(message):
+ addLine(result.data, line)
+ addLine(result.data, "")
+
+ for message in sortDependencies(parsed.messages):
for line in genProcs(message):
addLine(result.data, line)
addLine(result.data, "")