aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorOskari Timperi <oskari.timperi@iki.fi>2018-03-24 18:29:11 +0200
committerOskari Timperi <oskari.timperi@iki.fi>2018-03-24 18:29:11 +0200
commit5b25e192705d4040b51665e49627f8ea037186ee (patch)
tree1c4f0fed3098c28a2ea0200166bb35e09cb4438a /tests
parent0bc7b67059868af65d2158a8aeade5b6f777431b (diff)
downloadnimpb-5b25e192705d4040b51665e49627f8ea037186ee.tar.gz
nimpb-5b25e192705d4040b51665e49627f8ea037186ee.zip
Initial support for embedded messages
Diffstat (limited to 'tests')
-rw-r--r--tests/test3.nim55
1 files changed, 55 insertions, 0 deletions
diff --git a/tests/test3.nim b/tests/test3.nim
new file mode 100644
index 0000000..9c79b84
--- /dev/null
+++ b/tests/test3.nim
@@ -0,0 +1,55 @@
+import intsets
+
+import protobuf/types
+import protobuf/gen
+import protobuf/stream
+
+const
+ Test1Desc = MessageDesc(
+ name: "Test1",
+ fields: @[
+ FieldDesc(
+ name: "a",
+ number: 1,
+ ftype: FieldType.Int32,
+ label: FieldLabel.Required,
+ typeName: "",
+ packed: true
+ )
+ ]
+ )
+
+ Test3Desc = MessageDesc(
+ name: "Test3",
+ fields: @[
+ FieldDesc(
+ name: "c",
+ number: 3,
+ ftype: FieldType.Message,
+ label: FieldLabel.Required,
+ typeName: "Test1",
+ packed: false
+ )
+ ]
+ )
+
+generateMessageType(Test1Desc)
+generateMessageProcs(Test1Desc)
+
+generateMessageType(Test3Desc)
+generateMessageProcs(Test3Desc)
+
+import strutils
+let message = newTest3()
+let t1 = newTest1()
+setA(t1, 150)
+setC(message, t1)
+let ss = newStringStream()
+let pbs = newProtobufStream(ss)
+writeTest3(pbs, message)
+for b in ss.data:
+ echo(toHex(int(b), 2))
+
+setPosition(pbs, 0)
+let message2 = readTest3(pbs)
+echo(message2.c.a)