From ec9652394fc2c394b1dac2dd0d82a1b1457cea7c Mon Sep 17 00:00:00 2001 From: Peter Date: Thu, 30 Jul 2020 09:21:34 +0100 Subject: tested decode function --- src/gleam/json.gleam | 15 +++++++++++++++ src/gleam/json/types.gleam | 13 +++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 src/gleam/json.gleam create mode 100644 src/gleam/json/types.gleam (limited to 'src') 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) + } +} diff --git a/src/gleam/json/types.gleam b/src/gleam/json/types.gleam new file mode 100644 index 0000000..2e6c78f --- /dev/null +++ b/src/gleam/json/types.gleam @@ -0,0 +1,13 @@ +import gleam/dynamic.{Dynamic} + + +pub external type Json + +pub type Failure { + Badarg(Dynamic) +} + +pub type DecodeResult { + Ok(Json, String) + Error(Failure) +} -- cgit v1.2.3