aboutsummaryrefslogtreecommitdiff
path: root/examples/addressbook/phonenumber_pb.nim
diff options
context:
space:
mode:
Diffstat (limited to 'examples/addressbook/phonenumber_pb.nim')
-rw-r--r--examples/addressbook/phonenumber_pb.nim59
1 files changed, 35 insertions, 24 deletions
diff --git a/examples/addressbook/phonenumber_pb.nim b/examples/addressbook/phonenumber_pb.nim
index b09f1a0..8b03f00 100644
--- a/examples/addressbook/phonenumber_pb.nim
+++ b/examples/addressbook/phonenumber_pb.nim
@@ -1,8 +1,11 @@
# Generated by protoc_gen_nim. Do not edit!
+import base64
import intsets
+import json
import nimpb/nimpb
+import nimpb/json as nimpb_json
type
PhoneType* {.pure.} = enum
@@ -10,32 +13,33 @@ type
HOME = 1
WORK = 2
PhoneNumber* = ref PhoneNumberObj
- PhoneNumberObj* = object of RootObj
- hasField: IntSet
+ PhoneNumberObj* = object of Message
number: string
ftype: PhoneType
proc newPhoneNumber*(): PhoneNumber
-proc writePhoneNumber*(stream: ProtobufStream, message: PhoneNumber)
-proc readPhoneNumber*(stream: ProtobufStream): PhoneNumber
+proc newPhoneNumber*(data: string): PhoneNumber
+proc writePhoneNumber*(stream: Stream, message: PhoneNumber)
+proc readPhoneNumber*(stream: Stream): PhoneNumber
proc sizeOfPhoneNumber*(message: PhoneNumber): uint64
+proc toJson*(message: PhoneNumber): JsonNode
proc newPhoneNumber*(): PhoneNumber =
new(result)
- result.hasField = initIntSet()
+ initMessage(result[])
result.number = ""
- result.ftype = PhoneType(0)
+ result.ftype = PhoneType.MOBILE
proc clearnumber*(message: PhoneNumber) =
message.number = ""
- excl(message.hasField, [1])
+ clearFields(message, [1])
proc hasnumber*(message: PhoneNumber): bool =
- result = contains(message.hasField, 1)
+ result = hasField(message, 1)
proc setnumber*(message: PhoneNumber, value: string) =
message.number = value
- incl(message.hasField, 1)
+ setField(message, 1)
proc number*(message: PhoneNumber): string {.inline.} =
message.number
@@ -44,15 +48,15 @@ proc `number=`*(message: PhoneNumber, value: string) {.inline.} =
setnumber(message, value)
proc clearftype*(message: PhoneNumber) =
- message.ftype = PhoneType(0)
- excl(message.hasField, [2])
+ message.ftype = PhoneType.MOBILE
+ clearFields(message, [2])
proc hasftype*(message: PhoneNumber): bool =
- result = contains(message.hasField, 2)
+ result = hasField(message, 2)
proc setftype*(message: PhoneNumber, value: PhoneType) =
message.ftype = value
- incl(message.hasField, 2)
+ setField(message, 2)
proc ftype*(message: PhoneNumber): PhoneType {.inline.} =
message.ftype
@@ -67,14 +71,16 @@ proc sizeOfPhoneNumber*(message: PhoneNumber): uint64 =
if hasftype(message):
result = result + sizeOfTag(2, WireType.Varint)
result = result + sizeOfEnum[PhoneType](message.ftype)
+ result = result + sizeOfUnknownFields(message)
-proc writePhoneNumber*(stream: ProtobufStream, message: PhoneNumber) =
+proc writePhoneNumber*(stream: Stream, message: PhoneNumber) =
if hasnumber(message):
- writeString(stream, message.number, 1)
+ protoWriteString(stream, message.number, 1)
if hasftype(message):
- writeEnum(stream, message.ftype, 2)
+ protoWriteEnum(stream, message.ftype, 2)
+ writeUnknownFields(stream, message)
-proc readPhoneNumber*(stream: ProtobufStream): PhoneNumber =
+proc readPhoneNumber*(stream: Stream): PhoneNumber =
result = newPhoneNumber()
while not atEnd(stream):
let
@@ -85,23 +91,28 @@ proc readPhoneNumber*(stream: ProtobufStream): PhoneNumber =
raise newException(InvalidFieldNumberError, "Invalid field number: 0")
of 1:
expectWireType(wireType, WireType.LengthDelimited)
- setnumber(result, readString(stream))
+ setnumber(result, protoReadString(stream))
of 2:
expectWireType(wireType, WireType.Varint)
- setftype(result, readEnum[PhoneType](stream))
- else: skipField(stream, wireType)
+ setftype(result, protoReadEnum[PhoneType](stream))
+ else: readUnknownField(stream, result, tag)
+
+proc toJson*(message: PhoneNumber): JsonNode =
+ result = newJObject()
+ if hasnumber(message):
+ result["number"] = %message.number
+ if hasftype(message):
+ result["type"] = %($message.ftype)
proc serialize*(message: PhoneNumber): string =
let
ss = newStringStream()
- pbs = newProtobufStream(ss)
- writePhoneNumber(pbs, message)
+ writePhoneNumber(ss, message)
result = ss.data
proc newPhoneNumber*(data: string): PhoneNumber =
let
ss = newStringStream(data)
- pbs = newProtobufStream(ss)
- result = readPhoneNumber(pbs)
+ result = readPhoneNumber(ss)