Current section

Files

Jump to
vec src vec@vec3@decode.erl
Raw

src/vec@vec3@decode.erl

-module(vec@vec3@decode).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-define(FILEPATH, "src/vec/vec3/decode.gleam").
-export([vec3_decoder/1]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-file("src/vec/vec3/decode.gleam", 5).
?DOC(" A decoder that decodes 3D vectors where all elements are decoded with a given decoder.\n").
-spec vec3_decoder(gleam@dynamic@decode:decoder(HLR)) -> gleam@dynamic@decode:decoder(vec@vec3:vec3(HLR)).
vec3_decoder(Inner) ->
gleam@dynamic@decode:field(
<<"x"/utf8>>,
Inner,
fun(X) ->
gleam@dynamic@decode:field(
<<"y"/utf8>>,
Inner,
fun(Y) ->
gleam@dynamic@decode:field(
<<"z"/utf8>>,
Inner,
fun(Z) ->
gleam@dynamic@decode:success({vec3, X, Y, Z})
end
)
end
)
end
).