From 850d26eaaf1c3de9bed14b249b406b19e3b437a4 Mon Sep 17 00:00:00 2001 From: Louis Pilfold Date: Sat, 1 Jan 2022 19:29:19 +0000 Subject: Extra layer of indirection --- src/gleam/json.gleam | 16 ++++++++-------- src/gleam_json_ffi.erl | 16 +++++++++++++++- 2 files changed, 23 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/gleam/json.gleam b/src/gleam/json.gleam index 8c3652c..7db916d 100644 --- a/src/gleam/json.gleam +++ b/src/gleam/json.gleam @@ -29,7 +29,7 @@ pub type DecodeError { /// ``` /// pub external fn decode(String) -> Result(Dynamic, DecodeError) = - "thoas" "decode" + "gleam_json_ffi" "decode" /// Convert a JSON value into a string. /// @@ -72,7 +72,7 @@ pub external fn to_string_builder(Json) -> StringBuilder = /// ``` /// pub external fn string(input: String) -> Json = - "thoas_encode" "string" + "gleam_json_ffi" "string" /// Encode a bool into JSON. /// @@ -84,7 +84,7 @@ pub external fn string(input: String) -> Json = /// ``` /// pub external fn bool(input: Bool) -> Json = - "thoas_encode" "boolean" + "gleam_json_ffi" "bool" /// Encode an int into JSON. /// @@ -96,7 +96,7 @@ pub external fn bool(input: Bool) -> Json = /// ``` /// pub external fn int(input: Int) -> Json = - "thoas_encode" "integer" + "gleam_json_ffi" "int" /// Encode an float into JSON. /// @@ -108,7 +108,7 @@ pub external fn int(input: Int) -> Json = /// ``` /// pub external fn float(input: Float) -> Json = - "thoas_encode" "float" + "gleam_json_ffi" "float" /// The JSON value null. /// @@ -120,7 +120,7 @@ pub external fn float(input: Float) -> Json = /// ``` /// pub external fn null() -> Json = - "thoas_encode" "null" + "gleam_json_ffi" "null" /// Encode an optional value into JSON, using null if it the `None` variant. /// @@ -156,7 +156,7 @@ pub fn nullable(from input: Option(a), of inner_type: fn(a) -> Json) -> Json { /// ``` /// pub external fn object(entries: List(#(String, Json))) -> Json = - "thoas_encode" "non_recursive_object" + "gleam_json_ffi" "object" /// Encode a list into a JSON array. /// @@ -183,4 +183,4 @@ pub fn array(from entries: List(a), of inner_type: fn(a) -> Json) -> Json { /// ``` /// pub external fn preprocessed_array(from: List(Json)) -> Json = - "thoas_encode" "non_recursive_array" + "gleam_json_ffi" "array" diff --git a/src/gleam_json_ffi.erl b/src/gleam_json_ffi.erl index 94c3cc5..c33f87f 100644 --- a/src/gleam_json_ffi.erl +++ b/src/gleam_json_ffi.erl @@ -1,6 +1,12 @@ -module(gleam_json_ffi). --export([json_to_iodata/1, json_to_string/1]). +-export([ + decode/1, json_to_iodata/1, json_to_string/1, int/1, float/1, string/1, + bool/1, null/0, array/1, object/1 +]). + +decode(Json) -> + thoas:decode(Json). json_to_iodata(Json) -> Json. @@ -9,3 +15,11 @@ json_to_string(Json) when is_binary(Json) -> Json; json_to_string(Json) when is_list(Json) -> list_to_binary(Json). + +null() -> thoas_encode:null(). +int(X) -> thoas_encode:integer(X). +bool(X) -> thoas_encode:boolean(X). +float(X) -> thoas_encode:float(X). +string(X) -> thoas_encode:string(X). +object(X) -> thoas_encode:non_recursive_object(X). +array(X) -> thoas_encode:non_recursive_array(X). -- cgit v1.2.3