Fix expand of embedded Preserves
This commit is contained in:
parent
adec7fd7ad
commit
66a653a775
|
@ -1,6 +1,6 @@
|
||||||
# Package
|
# Package
|
||||||
|
|
||||||
version = "20221208"
|
version = "20221213"
|
||||||
author = "Emery Hemingway"
|
author = "Emery Hemingway"
|
||||||
description = "data model and serialization format"
|
description = "data model and serialization format"
|
||||||
license = "Unlicense"
|
license = "Unlicense"
|
||||||
|
|
|
@ -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] =
|
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.
|
## 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
|
case pr.kind
|
||||||
of pkBoolean, pkFloat, pkDouble, pkSignedInteger, pkString, pkByteString, pkSymbol:
|
of pkBoolean, pkFloat, pkDouble, pkSignedInteger, pkString, pkByteString, pkSymbol:
|
||||||
result = cast[Preserve[E]](pr)
|
result = cast[Preserve[E]](pr)
|
||||||
|
|
Loading…
Reference in New Issue