From c95199eadb76d139eb67f07d8eb64142d691fae7 Mon Sep 17 00:00:00 2001 From: Oskari Timperi Date: Sat, 7 Apr 2018 10:30:23 +0300 Subject: Add sizeOfUnknownField() --- src/nimpb/nimpb.nim | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src') diff --git a/src/nimpb/nimpb.nim b/src/nimpb/nimpb.nim index ea7cedd..4363c7d 100644 --- a/src/nimpb/nimpb.nim +++ b/src/nimpb/nimpb.nim @@ -589,3 +589,17 @@ proc writeUnknownFields*(stream: ProtobufStream, fields: seq[UnknownField]) = proc discardUnknownFields*[T](message: T) = message.unknownFields = @[] + +proc sizeOfUnknownField*(field: UnknownField): uint64 = + result = sizeOfTag(field.fieldNumber, field.wiretype) + case field.wiretype + of WireType.Varint: + result = result + sizeOfVarint(field.vint) + of WireType.Fixed64: + result = result + 8 + of WireType.Fixed32: + result = result + 4 + of WireType.LengthDelimited: + result = result + sizeOfLengthDelimited(uint64(len(field.data))) + else: + raise newException(Exception, "unsupported wiretype: " & $field.wiretype) -- cgit v1.2.3