Current section
Files
Jump to
Current section
Files
src/tallgrass@common@resource.erl
-module(tallgrass@common@resource).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([resource/0, paginated_resource/0]).
-export_type([paginated_resource/0, resource/0]).
-type paginated_resource() :: {paginated_resource,
integer(),
gleam@option:option(binary()),
gleam@option:option(binary()),
list(resource())}.
-type resource() :: {resource, binary()} | {named_resource, binary(), binary()}.
-file("/Users/stevetoro/Code/tallgrass/src/tallgrass/common/resource.gleam", 58).
-spec resource() -> decode:decoder(resource()).
resource() ->
decode:one_of(
[begin
_pipe = decode:into(
(decode:parameter(
fun(Name) ->
decode:parameter(
fun(Url) -> {named_resource, Url, Name} end
)
end
))
),
_pipe@1 = decode:field(
_pipe,
<<"name"/utf8>>,
{decoder, fun gleam@dynamic:string/1}
),
decode:field(
_pipe@1,
<<"url"/utf8>>,
{decoder, fun gleam@dynamic:string/1}
)
end,
begin
_pipe@2 = decode:into(
(decode:parameter(fun(Url@1) -> {resource, Url@1} end))
),
decode:field(
_pipe@2,
<<"url"/utf8>>,
{decoder, fun gleam@dynamic:string/1}
)
end]
).
-file("/Users/stevetoro/Code/tallgrass/src/tallgrass/common/resource.gleam", 43).
-spec paginated_resource() -> decode:decoder(paginated_resource()).
paginated_resource() ->
_pipe = decode:into(
(decode:parameter(
fun(Count) ->
decode:parameter(
fun(Next) ->
decode:parameter(
fun(Previous) ->
decode:parameter(
fun(Results) ->
{paginated_resource,
Count,
Next,
Previous,
Results}
end
)
end
)
end
)
end
))
),
_pipe@1 = decode:field(
_pipe,
<<"count"/utf8>>,
{decoder, fun gleam@dynamic:int/1}
),
_pipe@2 = decode:field(
_pipe@1,
<<"next"/utf8>>,
decode:optional({decoder, fun gleam@dynamic:string/1})
),
_pipe@3 = decode:field(
_pipe@2,
<<"previous"/utf8>>,
decode:optional({decoder, fun gleam@dynamic:string/1})
),
decode:field(_pipe@3, <<"results"/utf8>>, decode:list(resource())).