setItems iterator

This commit is contained in:
Emery Hemingway 2021-06-10 12:08:34 +02:00
parent b099475d25
commit db3e302067
1 changed files with 6 additions and 4 deletions

View File

@ -5,8 +5,8 @@ import bigints
type
PreserveKind* = enum
pkBoolean, pkFloat, pkDouble, pkSignedInteger, pkBigInteger, pkString, pkByteString,
pkSymbol, pkRecord, pkSequence, pkSet, pkDictionary, pkEmbedded
pkBoolean, pkFloat, pkDouble, pkSignedInteger, pkBigInteger, pkString,
pkByteString, pkSymbol, pkRecord, pkSequence, pkSet, pkDictionary, pkEmbedded
Preserve*[T] {.acyclic.} = object
## Type that stores a Preserves value.
@ -144,8 +144,10 @@ proc fields*[T](prs: Preserve[T]): seq[Preserve[T]] {.inline.} =
iterator fields*[T](prs: Preserve[T]): Preserve[T] =
## Iterate the fields of a record value.
for i in 1..prs.record.high:
yield prs.record[i]
for i in 1..prs.record.high: yield prs.record[i]
iterator setItems*[T](prs: Preserve[T]): Preserve[T] =
for v in prs.set.keys: yield v
proc `<`(x, y: string | seq[byte]): bool =
for i in 0 .. min(x.high, y.high):