aboutsummaryrefslogtreecommitdiff
path: root/src/protobuf/wkt/timestamp_pb.nim
blob: 958a894b3888c0515b343b967446b1b1a580f9cb (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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# Generated by protoc_gen_nim. Do not edit!

import intsets

import protobuf/protobuf

type
    google_protobuf_Timestamp* = ref google_protobuf_TimestampObj
    google_protobuf_TimestampObj* = object of RootObj
        hasField: IntSet
        seconds: int64
        nanos: int32

proc newgoogle_protobuf_Timestamp*(): google_protobuf_Timestamp
proc writegoogle_protobuf_Timestamp*(stream: ProtobufStream, message: google_protobuf_Timestamp)
proc readgoogle_protobuf_Timestamp*(stream: ProtobufStream): google_protobuf_Timestamp
proc sizeOfgoogle_protobuf_Timestamp*(message: google_protobuf_Timestamp): uint64

proc newgoogle_protobuf_Timestamp*(): google_protobuf_Timestamp =
    new(result)
    result.hasField = initIntSet()
    result.seconds = 0
    result.nanos = 0

proc clearseconds*(message: google_protobuf_Timestamp) =
    message.seconds = 0
    excl(message.hasField, 1)

proc hasseconds*(message: google_protobuf_Timestamp): bool =
    result = contains(message.hasField, 1)

proc setseconds*(message: google_protobuf_Timestamp, value: int64) =
    message.seconds = value
    incl(message.hasField, 1)

proc seconds*(message: google_protobuf_Timestamp): int64 {.inline.} =
    message.seconds

proc `seconds=`*(message: google_protobuf_Timestamp, value: int64) {.inline.} =
    setseconds(message, value)

proc clearnanos*(message: google_protobuf_Timestamp) =
    message.nanos = 0
    excl(message.hasField, 2)

proc hasnanos*(message: google_protobuf_Timestamp): bool =
    result = contains(message.hasField, 2)

proc setnanos*(message: google_protobuf_Timestamp, value: int32) =
    message.nanos = value
    incl(message.hasField, 2)

proc nanos*(message: google_protobuf_Timestamp): int32 {.inline.} =
    message.nanos

proc `nanos=`*(message: google_protobuf_Timestamp, value: int32) {.inline.} =
    setnanos(message, value)

proc sizeOfgoogle_protobuf_Timestamp*(message: google_protobuf_Timestamp): uint64 =
    if hasseconds(message):
        let
            sizeOfField = sizeOfInt64(message.seconds)
            sizeOfTag = sizeOfUInt32(uint32(makeTag(1, WireType.Varint)))
        result = result + sizeOfField + sizeOfTag
    if hasnanos(message):
        let
            sizeOfField = sizeOfInt32(message.nanos)
            sizeOfTag = sizeOfUInt32(uint32(makeTag(2, WireType.Varint)))
        result = result + sizeOfField + sizeOfTag

proc writegoogle_protobuf_Timestamp*(stream: ProtobufStream, message: google_protobuf_Timestamp) =
    if hasseconds(message):
        writeTag(stream, 1, WireType.Varint)
        writeInt64(stream, message.seconds)
    if hasnanos(message):
        writeTag(stream, 2, WireType.Varint)
        writeInt32(stream, message.nanos)

proc readgoogle_protobuf_Timestamp*(stream: ProtobufStream): google_protobuf_Timestamp =
    result = newgoogle_protobuf_Timestamp()
    while not atEnd(stream):
        let
            tag = readTag(stream)
            wireType = getTagWireType(tag)
        case getTagFieldNumber(tag)
        of 0:
            raise newException(InvalidFieldNumberError, "Invalid field number: 0")
        of 1:
            expectWireType(wireType, WireType.Varint)
            setseconds(result, readInt64(stream))
        of 2:
            expectWireType(wireType, WireType.Varint)
            setnanos(result, readInt32(stream))
        else: skipField(stream, wireType)

proc serialize*(message: google_protobuf_Timestamp): string =
    let
        ss = newStringStream()
        pbs = newProtobufStream(ss)
    writegoogle_protobuf_Timestamp(pbs, message)
    result = ss.data

proc newgoogle_protobuf_Timestamp*(data: string): google_protobuf_Timestamp =
    let
        ss = newStringStream(data)
        pbs = newProtobufStream(ss)
    result = readgoogle_protobuf_Timestamp(pbs)