Use step rather than [] for dictionaries
This commit is contained in:
parent
5c72729f23
commit
7125eadd49
|
@ -240,7 +240,7 @@ proc excl*(pr: var Preserve; key: Preserve) =
|
|||
delete(pr.set, i, i)
|
||||
break
|
||||
|
||||
proc `[]`*(pr, key: Preserve): Preserve =
|
||||
proc `[]`*(pr, key: Preserve): Preserve {.deprecated: "use step instead".} =
|
||||
## Select a value by `key` from `pr`.
|
||||
## Works for sequences, records, and dictionaries.
|
||||
if pr.isDictionary:
|
||||
|
@ -940,8 +940,10 @@ proc fromPreserve*[T, E](v: var T; pr: Preserve[E]): bool =
|
|||
if tupleLen(T) == pr.len:
|
||||
result = true
|
||||
for key, val in fieldPairs(v):
|
||||
try: result = fromPreserve(val, pr[toSymbol(key, E)])
|
||||
except KeyError: result = false
|
||||
let pv = step(pr, toSymbol(key, E))
|
||||
result =
|
||||
if pv.isSome: fromPreserve(val, get pv)
|
||||
else: false
|
||||
if not result: break
|
||||
else: discard
|
||||
elif T is ref:
|
||||
|
|
Loading…
Reference in New Issue