diff options
Diffstat (limited to 'examples/addressbook/phonenumber_pb.nim')
| -rw-r--r-- | examples/addressbook/phonenumber_pb.nim | 59 |
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) |
