From 1fee87590940761e288cf9ab3c7270832403b719 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Wed, 22 May 2024 20:50:48 +0300 Subject: [PATCH] decoding: parse single-byte boolean streams --- src/preserves/private/decoding.nim | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/preserves/private/decoding.nim b/src/preserves/private/decoding.nim index 8ae9468..f1317bb 100644 --- a/src/preserves/private/decoding.nim +++ b/src/preserves/private/decoding.nim @@ -19,11 +19,14 @@ proc decodePreserves*(s: Stream): Value {.gcsafe.} proc decodePreserves(s: Stream; tag: uint8): Value = ## Decode a Preserves value from a binary-encoded stream. - if s.atEnd: raise newException(IOError, "End of Preserves stream") const endMarker = 0x84 case tag - of 0x80: result = Value(kind: pkBoolean, bool: false) - of 0x81: result = Value(kind: pkBoolean, bool: true) + of 0x80: return Value(kind: pkBoolean, bool: false) + of 0x81: return Value(kind: pkBoolean, bool: true) + else: discard + if s.atEnd: + raise newException(IOError, "End of Preserves stream") + case tag of 0x85: discard decodePreserves(s) result = decodePreserves(s)