From ea7225e3b587771ceb9bd8a4c4d32dc55fc8c065 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Mon, 3 Apr 2023 17:03:56 -0500 Subject: [PATCH] Add toDictionary procedure --- preserves.nimble | 2 +- src/preserves.nim | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/preserves.nimble b/preserves.nimble index 7b7d6fd..56b87c2 100644 --- a/preserves.nimble +++ b/preserves.nimble @@ -1,6 +1,6 @@ # Package -version = "20230401" +version = "20230403" author = "Emery Hemingway" description = "data model and serialization format" license = "Unlicense" diff --git a/src/preserves.nim b/src/preserves.nim index 6cf9fef..fa95064 100644 --- a/src/preserves.nim +++ b/src/preserves.nim @@ -327,6 +327,11 @@ proc initSet*(E = void): Preserve[E] = Preserve[E](kind: pkSet) proc initDictionary*(E = void): Preserve[E] = Preserve[E](kind: pkDictionary) ## Create a Preserves dictionary value. +proc toDictionary*[E](pairs: openArray[(string, Preserve[E])]): Preserve[E] = + ## Create a Preserves dictionary value. + result = Preserve[E](kind: pkDictionary) + for (key, val) in pairs: result[toSymbol(key, E)] = val + proc embed*[E](pr: sink Preserve[E]): Preserve[E] = ## Create a Preserves value that embeds ``e``. result = pr