aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaytan <laytanlaats@hotmail.com>2025-12-31 03:31:28 +0100
committerGitHub <noreply@github.com>2025-12-31 03:31:28 +0100
commitc95b1054058812888e6696c0958694aac36ffb98 (patch)
treef49cbcca76ee898d2e2e641a7733c1a5856d2bb1
parente27a06b1f05df01bdebc466e216b3556a9bbeffd (diff)
parent5ab526fb4e11a06b79fef323b41e36a9e85d0361 (diff)
Merge pull request #6087 from dozn/json-unmarshal-runes
[encoding/json] Allow Unmarshalling to rune
-rw-r--r--core/encoding/json/types.odin1
-rw-r--r--core/encoding/json/unmarshal.odin9
2 files changed, 10 insertions, 0 deletions
diff --git a/core/encoding/json/types.odin b/core/encoding/json/types.odin
index 1da17a0db..77cc7db85 100644
--- a/core/encoding/json/types.odin
+++ b/core/encoding/json/types.odin
@@ -76,6 +76,7 @@ Error :: enum {
Invalid_Number,
String_Not_Terminated,
Invalid_String,
+ Invalid_Rune,
// Parsing Errors
diff --git a/core/encoding/json/unmarshal.odin b/core/encoding/json/unmarshal.odin
index 3cdc6429d..58365b684 100644
--- a/core/encoding/json/unmarshal.odin
+++ b/core/encoding/json/unmarshal.odin
@@ -225,6 +225,15 @@ unmarshal_string_token :: proc(p: ^Parser, val: any, token: Token, ti: ^reflect.
}
ok = true
return
+ case rune:
+ for rne, i in str {
+ if i > 0 {
+ dst = {}
+ return false, .Invalid_Rune
+ }
+ dst = rne
+ }
+ return true, nil
}
#partial switch variant in ti.variant {