diff options
| author | Laytan <laytanlaats@hotmail.com> | 2025-12-31 03:31:28 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-31 03:31:28 +0100 |
| commit | c95b1054058812888e6696c0958694aac36ffb98 (patch) | |
| tree | f49cbcca76ee898d2e2e641a7733c1a5856d2bb1 | |
| parent | e27a06b1f05df01bdebc466e216b3556a9bbeffd (diff) | |
| parent | 5ab526fb4e11a06b79fef323b41e36a9e85d0361 (diff) | |
Merge pull request #6087 from dozn/json-unmarshal-runes
[encoding/json] Allow Unmarshalling to rune
| -rw-r--r-- | core/encoding/json/types.odin | 1 | ||||
| -rw-r--r-- | core/encoding/json/unmarshal.odin | 9 |
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 { |