From 0f697349ccbb885045cf0bf4c908507e2a3b2309 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Tue, 30 May 2023 13:11:03 +0100 Subject: [PATCH] Add isInteger and isString procs for testing against values --- preserves.nimble | 2 +- src/preserves.nim | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/preserves.nimble b/preserves.nimble index a58601a..054a17e 100644 --- a/preserves.nimble +++ b/preserves.nimble @@ -1,6 +1,6 @@ # Package -version = "20230520" +version = "20230530" author = "Emery Hemingway" description = "data model and serialization format" license = "Unlicense" diff --git a/src/preserves.nim b/src/preserves.nim index 3c326fe..50ecae4 100644 --- a/src/preserves.nim +++ b/src/preserves.nim @@ -396,11 +396,19 @@ func isDouble*(pr: Preserve): bool {.inline.} = pr.kind == pkDouble ## Check if ``pr`` is a Preserve double. func isInteger*(pr: Preserve): bool {.inline.} = pr.kind == pkSignedInteger - ## Check if ``pr`` is a Preserve double. + ## Check if ``pr`` is a Preserve integer. + +func isInteger*(pr: Preserve; i: SomeInteger): bool {.inline.} = + ## Check if ``pr`` is a Preserve integer equivalent to `i`. + pr.kind == pkSignedInteger and pr.int == BiggestInt(i) func isString*(pr: Preserve): bool {.inline.} = pr.kind == pkString ## Check if ``pr`` is a Preserve text string. +func isString*(pr: Preserve; s: string): bool {.inline.} = + ## Check if ``pr`` is a Preserve text string equivalent to `s`. + pr.kind == pkString and pr.string == s + func isByteString*(pr: Preserve): bool {.inline.} = pr.kind == pkByteString ## Check if ``pr`` is a Preserves byte string.