diff options
| author | Oskari Timperi <oskari.timperi@iki.fi> | 2018-03-26 20:48:24 +0300 |
|---|---|---|
| committer | Oskari Timperi <oskari.timperi@iki.fi> | 2018-03-26 20:48:24 +0300 |
| commit | 2225256a6c97273a81f85f488ea2d4fc057ee142 (patch) | |
| tree | a07b1bbfda05c6932eeca642f53676ec7cfcacbf /src | |
| parent | 34dab72b3577ca143dc20dc745e640c4f6a8207d (diff) | |
| download | nimpb-2225256a6c97273a81f85f488ea2d4fc057ee142.tar.gz nimpb-2225256a6c97273a81f85f488ea2d4fc057ee142.zip | |
Forward declare sizeOf procs for write procs
If a message refers to itself, then the write procs for that message needs
to use sizeOf procs of the same message.
Diffstat (limited to 'src')
| -rw-r--r-- | src/protobuf/gen.nim | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/protobuf/gen.nim b/src/protobuf/gen.nim index 53e7b4e..512c0c5 100644 --- a/src/protobuf/gen.nim +++ b/src/protobuf/gen.nim @@ -307,11 +307,14 @@ proc generateWriteMessageProc(desc: NimNode): NimNode = procName = postfix(ident("write" & getMessageName(desc)), "*") body = newStmtList() stream = ident("stream") + sizeproc = postfix(ident("sizeOf" & getMessageName(desc)), "*") for field in fields(desc): add(body, genWriteField(field)) result = quote do: + proc `sizeproc`(`messageId`: `mtype`): uint64 + proc `procName`(`stream`: ProtobufStream, `messageId`: `mtype`) = `body` |
