Packages

A Gleam library for interacting with the Discord API

Current section

Files

Jump to
shimmer src shimmer@types@user.erl
Raw

src/shimmer@types@user.erl

-module(shimmer@types@user).
-compile(no_auto_import).
-export([from_json_string/1]).
-export_type([user/0]).
-type user() :: {user, binary(), binary(), binary(), boolean()}.
-spec from_json_string(binary()) -> {ok, user()} |
{error, shimmer@internal@error:shimmer_error()}.
from_json_string(Encoded) ->
User_decoder = gleam@dynamic:decode4(
fun(A, B, C, D) -> {user, A, B, C, D} end,
gleam@dynamic:field(<<"id"/utf8>>, fun gleam@dynamic:string/1),
gleam@dynamic:field(<<"username"/utf8>>, fun gleam@dynamic:string/1),
gleam@dynamic:field(
<<"discriminator"/utf8>>,
fun gleam@dynamic:string/1
),
gleam@dynamic:field(<<"bot"/utf8>>, fun gleam@dynamic:bool/1)
),
_pipe = gleam@json:decode(Encoded, User_decoder),
gleam@result:map_error(_pipe, fun(A) -> {invalid_json, A} end).