From 92eabcdb09ac19cbc2fdbdb9c6fe2a16071417c7 Mon Sep 17 00:00:00 2001 From: Oskari Timperi Date: Sun, 1 Apr 2018 17:37:04 +0300 Subject: Generate forward declarations for some procs --- generator/protoc_gen_nim.nim | 11 +++++++++++ 1 file changed, 11 insertions(+) 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 @@ -845,6 +851,11 @@ proc processFile(filename: string, fdesc: FileDescriptorProto, addLine(result.data, line) 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) -- cgit v1.2.3