diff options
author | flywind <xzsflywind@gmail.com> | 2021-10-02 02:26:29 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-01 20:26:29 +0200 |
commit | 5c4692fad4c807a010d58d553e92360128699197 (patch) | |
tree | c134ad60c87a7b3427a8a8a60f56f02d837a7850 /lib/std | |
parent | 7577ea9e4ce4d9966edc1f1cc27bde1b2ec9f369 (diff) | |
download | Nim-5c4692fad4c807a010d58d553e92360128699197.tar.gz |
rename nimLegacyJsonutilsHoleyEnum [backport] (#18938)
* enable nimPreviewJsonutilsHoleyEnum [backport] * docuement nimPreviewJsonutilsHoleyEnum
Diffstat (limited to 'lib/std')
-rw-r--r-- | lib/std/jsonutils.nim | 6 |
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: |