toPreserves: unpack preservesTupleTail on records
This commit is contained in:
parent
ba0857c32b
commit
5e1e97e4df
|
@ -1,6 +1,6 @@
|
|||
# Package
|
||||
|
||||
version = "20240116"
|
||||
version = "20240118"
|
||||
author = "Emery Hemingway"
|
||||
description = "data model and serialization format"
|
||||
license = "Unlicense"
|
||||
|
|
|
@ -417,9 +417,13 @@ proc toPreserves*[T](x: T): Value {.gcsafe.} =
|
|||
hasVariant = true
|
||||
elif T.hasCustomPragma(preservesRecord):
|
||||
result = Value(kind: pkRecord)
|
||||
for k, v in x.fieldPairs:
|
||||
var pr = fieldToPreserve(k, v)
|
||||
result.record.add(pr)
|
||||
for label, field in x.fieldPairs:
|
||||
when x.dot(label).hasCustomPragma(preservesTupleTail):
|
||||
for e in field.items:
|
||||
result.record.add(toPreserves(e))
|
||||
else:
|
||||
var pr = fieldToPreserve(label, field)
|
||||
result.record.add(pr)
|
||||
result.record.add(toSymbol(T.getCustomPragmaVal(preservesRecord)))
|
||||
elif T.hasCustomPragma(preservesTuple):
|
||||
result = initSequence(0)
|
||||
|
|
Loading…
Reference in New Issue