aboutsummaryrefslogtreecommitdiff
path: root/examples/simple/simple_pb.nim
diff options
context:
space:
mode:
Diffstat (limited to 'examples/simple/simple_pb.nim')
-rw-r--r--examples/simple/simple_pb.nim113
1 files changed, 113 insertions, 0 deletions
diff --git a/examples/simple/simple_pb.nim b/examples/simple/simple_pb.nim
new file mode 100644
index 0000000..6de8b3f
--- /dev/null
+++ b/examples/simple/simple_pb.nim
@@ -0,0 +1,113 @@
+# Generated by protoc_gen_nim. Do not edit!
+
+import intsets
+
+import protobuf/stream
+import protobuf/types
+
+type
+ Test1_MyEnum* {.pure.} = enum
+ Foo = 0
+ Bar = 1
+ Test1* = ref Test1Obj
+ Test1Obj* = object of RootObj
+ hasField: IntSet
+ a: int32
+ e: Test1_MyEnum
+
+proc readTest1_MyEnum*(stream: ProtobufStream): Test1_MyEnum =
+ Test1_MyEnum(readUInt32(stream))
+
+proc writeTest1_MyEnum*(stream: ProtobufStream, value: Test1_MyEnum) =
+ writeUInt32(stream, uint32(value))
+
+proc sizeOfTest1_MyEnum*(value: Test1_MyEnum): uint64 =
+ sizeOfUInt32(uint32(value))
+
+proc newTest1*(): Test1 =
+ new(result)
+ result.hasField = initIntSet()
+ result.a = 0
+ result.e = Test1_MyEnum(0)
+
+proc cleara*(message: Test1) =
+ message.a = 0
+ excl(message.hasField, 1)
+
+proc hasa*(message: Test1): bool =
+ result = contains(message.hasField, 1)
+
+proc seta*(message: Test1, value: int32) =
+ message.a = value
+ incl(message.hasField, 1)
+
+proc a*(message: Test1): int32 {.inline.} =
+ message.a
+
+proc `a=`*(message: Test1, value: int32) {.inline.} =
+ seta(message, value)
+
+proc cleare*(message: Test1) =
+ message.e = Test1_MyEnum(0)
+ excl(message.hasField, 2)
+
+proc hase*(message: Test1): bool =
+ result = contains(message.hasField, 2)
+
+proc sete*(message: Test1, value: Test1_MyEnum) =
+ message.e = value
+ incl(message.hasField, 2)
+
+proc e*(message: Test1): Test1_MyEnum {.inline.} =
+ message.e
+
+proc `e=`*(message: Test1, value: Test1_MyEnum) {.inline.} =
+ sete(message, value)
+
+proc sizeOfTest1*(message: Test1): uint64 =
+ if hasa(message):
+ let
+ sizeOfField = sizeOfInt32(message.a)
+ sizeOfTag = sizeOfUInt32(uint32(makeTag(1, WireType.Varint)))
+ result = result + sizeOfField + sizeOfTag
+ if hase(message):
+ let
+ sizeOfField = sizeOfTest1_MyEnum(message.e)
+ sizeOfTag = sizeOfUInt32(uint32(makeTag(2, WireType.Varint)))
+ result = result + sizeOfField + sizeOfTag
+
+proc writeTest1*(stream: ProtobufStream, message: Test1) =
+ if hasa(message):
+ writeTag(stream, 1, WireType.Varint)
+ writeInt32(stream, message.a)
+ if hase(message):
+ writeTag(stream, 2, WireType.Varint)
+ writeTest1_MyEnum(stream, message.e)
+
+proc readTest1*(stream: ProtobufStream): Test1 =
+ result = newTest1()
+ while not atEnd(stream):
+ let
+ tag = readTag(stream)
+ wireType = getTagWireType(tag)
+ case getTagFieldNumber(tag)
+ of 1:
+ seta(result, readInt32(stream))
+ of 2:
+ sete(result, readTest1_MyEnum(stream))
+ else: skipField(stream, wireType)
+
+proc serialize*(message: Test1): string =
+ let
+ ss = newStringStream()
+ pbs = newProtobufStream(ss)
+ writeTest1(pbs, message)
+ result = ss.data
+
+proc newTest1*(data: string): Test1 =
+ let
+ ss = newStringStream(data)
+ pbs = newProtobufStream(ss)
+ result = readTest1(pbs)
+
+