summary refs log tree commit diff stats
path: root/lib/std
diff options
context:
space:
mode:
authorflywind <xzsflywind@gmail.com>2021-10-02 02:26:29 +0800
committerGitHub <noreply@github.com>2021-10-01 20:26:29 +0200
commit5c4692fad4c807a010d58d553e92360128699197 (patch)
treec134ad60c87a7b3427a8a8a60f56f02d837a7850 /lib/std
parent7577ea9e4ce4d9966edc1f1cc27bde1b2ec9f369 (diff)
downloadNim-5c4692fad4c807a010d58d553e92360128699197.tar.gz
rename nimLegacyJsonutilsHoleyEnum [backport] (#18938)
* enable nimPreviewJsonutilsHoleyEnum [backport]

* docuement nimPreviewJsonutilsHoleyEnum
Diffstat (limited to 'lib/std')
-rw-r--r--lib/std/jsonutils.nim6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/std/jsonutils.nim b/lib/std/jsonutils.nim
index 727a75288..19384b5d1 100644
--- a/lib/std/jsonutils.nim
+++ b/lib/std/jsonutils.nim
@@ -298,6 +298,10 @@ proc jsonTo*(b: JsonNode, T: typedesc, opt = Joptions()): T =
 proc toJson*[T](a: T, opt = initToJsonOptions()): JsonNode =
   ## serializes `a` to json; uses `toJsonHook(a: T)` if it's in scope to
   ## customize serialization, see strtabs.toJsonHook for an example.
+  ##
+  ## .. note:: With `-d:nimPreviewJsonutilsHoleyEnum`, `toJson` now can 
+  ##    serialize/deserialize holey enums as regular enums (via `ord`) instead of as strings.
+  ##    It is expected that this behavior becomes the new default in upcoming versions.
   when compiles(toJsonHook(a)): result = toJsonHook(a)
   elif T is object | tuple:
     when T is object or isNamedTuple(T):
@@ -328,7 +332,7 @@ proc toJson*[T](a: T, opt = initToJsonOptions()): JsonNode =
   elif T is enum:
     case opt.enumMode
     of joptEnumOrd:
-      when T is Ordinal or not defined(nimLegacyJsonutilsHoleyEnum): %(a.ord)
+      when T is Ordinal or defined(nimPreviewJsonutilsHoleyEnum): %(a.ord)
       else: toJson($a, opt)
     of joptEnumSymbol:
       when T is OrdinalEnum: