diff options
| author | Oskari Timperi <oskari.timperi@iki.fi> | 2018-04-01 11:36:57 +0300 |
|---|---|---|
| committer | Oskari Timperi <oskari.timperi@iki.fi> | 2018-04-01 11:36:57 +0300 |
| commit | 4e9cecf0202a20b329f4846c923cf67a3dd622aa (patch) | |
| tree | 41ccdbf5f658a3dca6899ca30e66c83ca40adf55 /src | |
| parent | e12f638e822c010126232846c09136e5e2b7f6d8 (diff) | |
| download | nimpb-4e9cecf0202a20b329f4846c923cf67a3dd622aa.tar.gz nimpb-4e9cecf0202a20b329f4846c923cf67a3dd622aa.zip | |
Add procs for bytes to stream.nim
Diffstat (limited to 'src')
| -rw-r--r-- | src/protobuf/stream.nim | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/protobuf/stream.nim b/src/protobuf/stream.nim index 74f57dd..6f3b503 100644 --- a/src/protobuf/stream.nim +++ b/src/protobuf/stream.nim @@ -235,11 +235,17 @@ proc writeString*(stream: ProtobufStream, s: string) = writeUInt64(stream, len(s).uint64) write(stream, s) +proc writeBytes*(stream: ProtobufStream, s: bytes) = + writeString(stream, string(s)) + proc readString*(stream: ProtobufStream): string = # TODO: use something else than readStr to get rid of int cast? let size = readUInt64(stream).int result = readStr(stream, size) +proc readBytes*(stream: ProtobufStream): bytes = + bytes(readString(stream)) + proc readEnum*[T](stream: ProtobufStream): T = result = T(readUInt32(stream)) @@ -268,6 +274,9 @@ proc packedFieldSize*[T](values: seq[T], wiretype: WireType): uint64 = proc sizeOfString*(s: string): uint64 = result = sizeOfVarint(len(s).uint64) + len(s).uint64 +proc sizeOfBytes*(s: bytes): uint64 = + result = sizeOfString(string(s)) + proc sizeOfDouble*(value: float64): uint64 = result = 8 |
