aboutsummaryrefslogtreecommitdiff
path: root/examples/addressbook/writer.nim
diff options
context:
space:
mode:
Diffstat (limited to 'examples/addressbook/writer.nim')
-rw-r--r--examples/addressbook/writer.nim37
1 files changed, 37 insertions, 0 deletions
diff --git a/examples/addressbook/writer.nim b/examples/addressbook/writer.nim
new file mode 100644
index 0000000..6d32005
--- /dev/null
+++ b/examples/addressbook/writer.nim
@@ -0,0 +1,37 @@
+import streams
+
+import protobuf/stream
+
+import addressbook_pb
+
+let addressBook = newAddressBook()
+
+let john = newPerson()
+setName(john, "John Doe")
+setId(john, 1)
+setEmail(john, "john.doe@example.com")
+addPeople(addressBook, john)
+
+let johnPhone1 = newPerson_PhoneNumber()
+setNumber(johnPhone1, "1234")
+setType(johnPhone1, MOBILE)
+addPhones(john, johnPhone1)
+
+let johnPhone2 = newPerson_PhoneNumber()
+setNumber(johnPhone2, "5566")
+setType(johnPhone2, WORK)
+addPhones(john, johnPhone2)
+
+let jane = newPerson()
+setName(jane, "Jane Doe")
+setId(jane, 2)
+setEmail(jane, "jane.doe@example.com")
+addPeople(addressBook, jane)
+
+let janePhone1 = newPerson_PhoneNumber()
+setNumber(janePhone1, "1432")
+setType(janePhone1, HOME)
+addPhones(jane, janePhone1)
+
+let pbso = newProtobufStream(newFileStream("addressbook.dat", fmWrite))
+writeAddressBook(pbso, addressBook)