Current section
Files
Jump to
Current section
Files
src/internal@carpenter@props.erl
-module(internal@carpenter@props).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/internal/carpenter/props.gleam").
-export([append/3, append_if/3, atom/1, pair/2]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(false).
-file("src/internal/carpenter/props.gleam", 23).
?DOC(false).
-spec append(
list(gleam@dynamic:dynamic_()),
gleam@option:option(HQD),
fun((HQD) -> gleam@dynamic:dynamic_())
) -> list(gleam@dynamic:dynamic_()).
append(Props, Prop, Mapper) ->
_pipe = Prop,
_pipe@1 = gleam@option:map(_pipe, Mapper),
_pipe@2 = gleam@option:map(
_pipe@1,
fun(_capture) -> gleam@list:prepend(Props, _capture) end
),
gleam@option:unwrap(_pipe@2, Props).
-file("src/internal/carpenter/props.gleam", 36).
?DOC(false).
-spec append_if(
list(gleam@dynamic:dynamic_()),
boolean(),
fun(() -> gleam@dynamic:dynamic_())
) -> list(gleam@dynamic:dynamic_()).
append_if(Props, Prop, Mapper) ->
gleam@bool:guard(not Prop, Props, fun() -> [Mapper() | Props] end).
-file("src/internal/carpenter/props.gleam", 47).
?DOC(false).
-spec atom(binary()) -> gleam@dynamic:dynamic_().
atom(Name) ->
Value = erlang:binary_to_atom(Name),
carpenter_ffi:coerce(Value).
-file("src/internal/carpenter/props.gleam", 54).
?DOC(false).
-spec pair(binary(), any()) -> gleam@dynamic:dynamic_().
pair(Prop, Value) ->
Prop@1 = atom(Prop),
Value@1 = carpenter_ffi:coerce(Value),
carpenter_ffi:coerce({Prop@1, Value@1}).