diff --git a/preserves.nimble b/preserves.nimble index 61fcb23..d8bb2ff 100644 --- a/preserves.nimble +++ b/preserves.nimble @@ -1,6 +1,6 @@ # Package -version = "20221013" +version = "20221016" author = "Emery Hemingway" description = "data model and serialization format" license = "Unlicense" diff --git a/src/preserves.nim b/src/preserves.nim index 5c19717..05d9e8e 100644 --- a/src/preserves.nim +++ b/src/preserves.nim @@ -528,16 +528,14 @@ proc write*[E](str: Stream; pr: Preserve[E]) = str.write(value) str.write(0x84'u8) of pkEmbedded: - when not E is void: - str.write(0x86'u8) - str.write(pr.embed.toPreserve) + str.write(0x86'u8) + str.write(pr.embed.toPreserve) proc encode*[E](pr: Preserve[E]): seq[byte] = ## Return the binary-encoding of a Preserves value. let s = newStringStream() s.write pr - s.setPosition 0 - result = cast[seq[byte]](s.readAll) + result = cast[seq[byte]](move s.data) proc decodePreserves*(s: Stream; E = void): Preserve[E] = ## Decode a Preserves value from a binary-encoded stream. @@ -735,7 +733,7 @@ proc toPreserve*[T](x: T; E = void): Preserve[E] = else: toPreserve(val, E) when T.hasCustomPragma(unpreservable): - {.error: $T & " is unpreservable".} + raiseAssert($T & " is unpreservable") elif T.hasCustomPragma(preservesOr): var hasKind, hasVariant: bool for k, v in x.fieldPairs: