diff options
Diffstat (limited to 'src/gleam/json.gleam')
-rw-r--r-- | src/gleam/json.gleam | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/gleam/json.gleam b/src/gleam/json.gleam new file mode 100644 index 0000000..e1e465b --- /dev/null +++ b/src/gleam/json.gleam @@ -0,0 +1,15 @@ +import gleam/dynamic.{Dynamic} +import gleam/result +import gleam/json/types + +pub type Json = types.Json + +external fn jsone_decode(String) -> types.DecodeResult = + "jsone_decode" "decode" + +pub fn decode(encoded: String) -> Result(Json, Dynamic) { + case jsone_decode(encoded) { + types.Ok(json, _rest) -> Ok(json) + types.Error(types.Badarg(reason)) -> Error(reason) + } +} |