aboutsummaryrefslogtreecommitdiff
path: root/examples/addressbook/writer.nim
blob: cd1e488577c5468810e5bfd9115e5bdae6486531 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import streams

import nimpb/nimpb

import addressbook_pb
import phonenumber_pb

let addressBook = newAddressBook()

let john = newPerson()
john.name = "John Doe"
john.id = 1
john.email = "john.doe@example.com"
addPeople(addressBook, john)

let johnPhone1 = newPhoneNumber()
johnPhone1.number = "1234"
johnPhone1.ftype = PhoneType.MOBILE
addPhones(john, johnPhone1)

let johnPhone2 = newPhoneNumber()
setNumber(johnPhone2, "5566")
setFType(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 = newPhoneNumber()
setNumber(janePhone1, "1432")
setFType(janePhone1, HOME)
addPhones(jane, janePhone1)

let pbso = newProtobufStream(newFileStream("addressbook.dat", fmWrite))
writeAddressBook(pbso, addressBook)