From 77182276625157643fc9a1cd8949496cc71bc0f0 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Sun, 14 May 2023 22:56:00 +0100 Subject: [PATCH] Add step proc for symbols --- src/preserves.nim | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/preserves.nim b/src/preserves.nim index 23ceeba..f6356f1 100644 --- a/src/preserves.nim +++ b/src/preserves.nim @@ -273,6 +273,14 @@ func step*(pr, idx: Preserve): Option[Preserve] = if i < pr.len: result = some(pr[i]) +func step*[E](pr: Preserve[E]; key: Symbol): Option[Preserve[E]] = + ## Step into dictionary by a `Symbol` key. + if pr.isDictionary: + for (k, v) in pr.dict.items: + if k.isSymbol and k.symbol == key: + result = some(v) + break + proc `[]=`*(pr: var Preserve; key, val: Preserve) = ## Insert `val` by `key` in the Preserves dictionary `pr`. for i in 0..pr.dict.high: