aboutsummaryrefslogtreecommitdiff
path: root/core/encoding/json
diff options
context:
space:
mode:
Diffstat (limited to 'core/encoding/json')
-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 {