Fix expand of embedded Preserves

This commit is contained in:
Emery Hemingway 2022-12-13 22:05:05 -06:00
parent adec7fd7ad
commit 66a653a775
2 changed files with 4 additions and 2 deletions

View File

@ -1,6 +1,6 @@
# Package
version = "20221208"
version = "20221213"
author = "Emery Hemingway"
description = "data model and serialization format"
license = "Unlicense"

View File

@ -1245,7 +1245,9 @@ proc contract*[E](pr: sink Preserve[E]; op: proc (v: E): Preserve[void]): Preser
proc expand*[E](pr: sink Preserve[void]; op: proc (v: Preserve[void]): Preserve[E]): Preserve[E] =
## Convert `Preserve[void]` to `Preserve[E]` using an `Preserve[void] → Preserve[E]` procedure.
if not pr.embedded:
if pr.embedded:
result = op(pr)
else:
case pr.kind
of pkBoolean, pkFloat, pkDouble, pkSignedInteger, pkString, pkByteString, pkSymbol:
result = cast[Preserve[E]](pr)