diff options
author | Ivan Bobev <bobeff@protonmail.ch> | 2020-09-09 15:18:59 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-09 14:18:59 +0200 |
commit | ccd77b42af11e53631bee7bd74e16d39538541c9 (patch) | |
tree | ac7a9053da327fcd019f7453a25057c6a0f80c4a /lib/pure/options.nim | |
parent | 8a2cd7b24bbf493ffb90204ec2892ddf7e2e8316 (diff) | |
download | Nim-ccd77b42af11e53631bee7bd74e16d39538541c9.tar.gz |
Add some enhancements to `jsonutils.nim` (#15133)
* Add some enhancements to `jsonutils.nim` * Use `jsonutils.nim` hookable API to add a possibility to deserialize JSON arrays directly to `HashSet` and `OrderedSet` types and respectively to serialize those types to JSON arrays. * Also add a possibility to deserialize JSON `null` objects to Nim option objects and respectively to serialize Nim option object to JSON object if some or to JSON `null` object if none. * Move serialization/deserialization functionality for `Table` and `OrderedTable` types from `jsonutils.nim` to `tables.nim` via the hookable API. * Add object `jsonutils.Joptions` and parameter from its type to `jsonutils.fromJson` procedure to control whether to allow deserializing JSON objects to Nim objects when the JSON has some extra or missing keys. * Add unit tests for the added functionalities to `tjsonutils.nim`. * improve fromJsonFields * Add changelog entry for the jsonutils enhancements * Add TODO in `jsonutils.nim` * Added an entry to "Future directions" section in `jsonutils.nim` as suggestion for future support of serialization and de-serialization of nested variant objects. * Added currently disabled test case in `tjsonutils.nim` for testing serialization and de-serialization of nested variant objects. * Move JSON hooks to `jsonutils.nim` Move `fromJsonHook` and `toJsonHook` procedures for different types to `jsonutils.nim` module to avoid a dependency of collections modules to the `json.nim` module. The hooks are removed from the following modules: * `tables.nim` * `sets.nim` * `options.nim` * `strtabs.nim` * Add some tests about `StringTableRef` Add tests for `StringTableRef`'s `fromJsonHook` and `toJsonHook` to `tjsonutils.nim`. * Disable a warning in `jsonutils.nim` Mark `fun` template in `jsonutils` module with `{.used.}` pragma in order to disable `[XDeclaredButNotUsed]` hint. The template is actually used by the `initCaseObject` macro in the same module. Co-authored-by: Timothee Cour <timothee.cour2@gmail.com>
Diffstat (limited to 'lib/pure/options.nim')
-rw-r--r-- | lib/pure/options.nim | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/lib/pure/options.nim b/lib/pure/options.nim index 4efe04d67..076cf3707 100644 --- a/lib/pure/options.nim +++ b/lib/pure/options.nim @@ -372,7 +372,6 @@ proc unsafeGet*[T](self: Option[T]): lent T {.inline.}= assert self.isSome result = self.val - when isMainModule: import unittest, sequtils |