Packages

Layout and style that's easy to refactor, all without thinking about CSS.

Current section

Files

Jump to
legos src legos@internal@flag.erl
Raw

src/legos@internal@flag.erl

-module(legos@internal@flag).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/legos/internal/flag.gleam").
-export([value/1, present/2, add/2, merge/2, flag/1, transparency/0, padding/0, spacing/0, font_size/0, font_family/0, width/0, height/0, bg_color/0, bg_image/0, bg_gradient/0, border_style/0, font_alignment/0, font_weight/0, font_color/0, word_spacing/0, letter_spacing/0, border_round/0, txt_shadows/0, shadows/0, overflow/0, cursor/0, scale/0, rotate/0, move_x/0, move_y/0, border_width/0, border_color/0, y_align/0, x_align/0, focus/0, active/0, hover/0, grid_template/0, grid_position/0, height_content/0, height_fill/0, width_content/0, width_fill/0, align_right/0, align_bottom/0, center_x/0, center_y/0, width_between/0, height_between/0, behind/0, height_text_area_content/0, font_variant/0, transition/0]).
-export_type([field/0, flag/0]).
-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).
-type field() :: {field, integer(), integer()}.
-type flag() :: {first, integer()} | {second, integer()}.
-file("src/legos/internal/flag.gleam", 23).
?DOC(false).
-spec unsafe_log_base_2(integer()) -> float().
unsafe_log_base_2(Num) ->
R@1 = case gleam_community@maths:logarithm_2(erlang:float(Num)) of
{ok, R} -> R;
_assert_fail ->
erlang:error(#{gleam_error => let_assert,
message => <<"Pattern match failed, no pattern matched the value."/utf8>>,
file => <<?FILEPATH/utf8>>,
module => <<"legos/internal/flag"/utf8>>,
function => <<"unsafe_log_base_2"/utf8>>,
line => 24,
value => _assert_fail,
start => 406,
'end' => 461,
pattern_start => 417,
pattern_end => 422})
end,
R@1.
-file("src/legos/internal/flag.gleam", 16).
?DOC(false).
-spec value(flag()) -> integer().
value(Flag) ->
case Flag of
{first, First} ->
erlang:round(unsafe_log_base_2(First));
{second, Second} ->
erlang:round(unsafe_log_base_2(Second)) + 32
end.
-file("src/legos/internal/flag.gleam", 29).
?DOC(false).
-spec present(flag(), field()) -> boolean().
present(Flag, Field) ->
case {Flag, Field} of
{{first, First}, {field, Field_one, _}} ->
erlang:'band'(First, Field_one) =:= First;
{{second, Second}, {field, _, Field_two}} ->
erlang:'band'(Second, Field_two) =:= Second
end.
-file("src/legos/internal/flag.gleam", 39).
?DOC(false).
-spec add(field(), flag()) -> field().
add(Field, Flag) ->
case Flag of
{first, First} ->
{field,
erlang:'bor'(First, erlang:element(2, Field)),
erlang:element(3, Field)};
{second, Second} ->
{field,
erlang:element(2, Field),
erlang:'bor'(Second, erlang:element(3, Field))}
end.
-file("src/legos/internal/flag.gleam", 47).
?DOC(false).
-spec merge(field(), field()) -> field().
merge(Field1, Field2) ->
{field,
erlang:'bor'(erlang:element(2, Field1), erlang:element(2, Field2)),
erlang:'bor'(erlang:element(3, Field1), erlang:element(3, Field2))}.
-file("src/legos/internal/flag.gleam", 54).
?DOC(false).
-spec flag(integer()) -> flag().
flag(I) ->
case I > 31 of
true ->
{second, erlang:'bsl'(1, I - 32)};
false ->
{first, erlang:'bsl'(1, I)}
end.
-file("src/legos/internal/flag.gleam", 64).
?DOC(false).
-spec transparency() -> flag().
transparency() ->
flag(0).
-file("src/legos/internal/flag.gleam", 68).
?DOC(false).
-spec padding() -> flag().
padding() ->
flag(2).
-file("src/legos/internal/flag.gleam", 72).
?DOC(false).
-spec spacing() -> flag().
spacing() ->
flag(3).
-file("src/legos/internal/flag.gleam", 76).
?DOC(false).
-spec font_size() -> flag().
font_size() ->
flag(4).
-file("src/legos/internal/flag.gleam", 80).
?DOC(false).
-spec font_family() -> flag().
font_family() ->
flag(5).
-file("src/legos/internal/flag.gleam", 84).
?DOC(false).
-spec width() -> flag().
width() ->
flag(6).
-file("src/legos/internal/flag.gleam", 88).
?DOC(false).
-spec height() -> flag().
height() ->
flag(7).
-file("src/legos/internal/flag.gleam", 92).
?DOC(false).
-spec bg_color() -> flag().
bg_color() ->
flag(8).
-file("src/legos/internal/flag.gleam", 96).
?DOC(false).
-spec bg_image() -> flag().
bg_image() ->
flag(9).
-file("src/legos/internal/flag.gleam", 100).
?DOC(false).
-spec bg_gradient() -> flag().
bg_gradient() ->
flag(10).
-file("src/legos/internal/flag.gleam", 104).
?DOC(false).
-spec border_style() -> flag().
border_style() ->
flag(11).
-file("src/legos/internal/flag.gleam", 108).
?DOC(false).
-spec font_alignment() -> flag().
font_alignment() ->
flag(12).
-file("src/legos/internal/flag.gleam", 112).
?DOC(false).
-spec font_weight() -> flag().
font_weight() ->
flag(13).
-file("src/legos/internal/flag.gleam", 116).
?DOC(false).
-spec font_color() -> flag().
font_color() ->
flag(14).
-file("src/legos/internal/flag.gleam", 120).
?DOC(false).
-spec word_spacing() -> flag().
word_spacing() ->
flag(15).
-file("src/legos/internal/flag.gleam", 124).
?DOC(false).
-spec letter_spacing() -> flag().
letter_spacing() ->
flag(16).
-file("src/legos/internal/flag.gleam", 128).
?DOC(false).
-spec border_round() -> flag().
border_round() ->
flag(17).
-file("src/legos/internal/flag.gleam", 132).
?DOC(false).
-spec txt_shadows() -> flag().
txt_shadows() ->
flag(18).
-file("src/legos/internal/flag.gleam", 136).
?DOC(false).
-spec shadows() -> flag().
shadows() ->
flag(19).
-file("src/legos/internal/flag.gleam", 140).
?DOC(false).
-spec overflow() -> flag().
overflow() ->
flag(20).
-file("src/legos/internal/flag.gleam", 144).
?DOC(false).
-spec cursor() -> flag().
cursor() ->
flag(21).
-file("src/legos/internal/flag.gleam", 148).
?DOC(false).
-spec scale() -> flag().
scale() ->
flag(23).
-file("src/legos/internal/flag.gleam", 152).
?DOC(false).
-spec rotate() -> flag().
rotate() ->
flag(24).
-file("src/legos/internal/flag.gleam", 156).
?DOC(false).
-spec move_x() -> flag().
move_x() ->
flag(25).
-file("src/legos/internal/flag.gleam", 160).
?DOC(false).
-spec move_y() -> flag().
move_y() ->
flag(26).
-file("src/legos/internal/flag.gleam", 164).
?DOC(false).
-spec border_width() -> flag().
border_width() ->
flag(27).
-file("src/legos/internal/flag.gleam", 168).
?DOC(false).
-spec border_color() -> flag().
border_color() ->
flag(28).
-file("src/legos/internal/flag.gleam", 172).
?DOC(false).
-spec y_align() -> flag().
y_align() ->
flag(29).
-file("src/legos/internal/flag.gleam", 176).
?DOC(false).
-spec x_align() -> flag().
x_align() ->
flag(30).
-file("src/legos/internal/flag.gleam", 180).
?DOC(false).
-spec focus() -> flag().
focus() ->
flag(31).
-file("src/legos/internal/flag.gleam", 184).
?DOC(false).
-spec active() -> flag().
active() ->
flag(32).
-file("src/legos/internal/flag.gleam", 188).
?DOC(false).
-spec hover() -> flag().
hover() ->
flag(33).
-file("src/legos/internal/flag.gleam", 192).
?DOC(false).
-spec grid_template() -> flag().
grid_template() ->
flag(34).
-file("src/legos/internal/flag.gleam", 196).
?DOC(false).
-spec grid_position() -> flag().
grid_position() ->
flag(35).
-file("src/legos/internal/flag.gleam", 202).
?DOC(false).
-spec height_content() -> flag().
height_content() ->
flag(36).
-file("src/legos/internal/flag.gleam", 206).
?DOC(false).
-spec height_fill() -> flag().
height_fill() ->
flag(37).
-file("src/legos/internal/flag.gleam", 210).
?DOC(false).
-spec width_content() -> flag().
width_content() ->
flag(38).
-file("src/legos/internal/flag.gleam", 214).
?DOC(false).
-spec width_fill() -> flag().
width_fill() ->
flag(39).
-file("src/legos/internal/flag.gleam", 218).
?DOC(false).
-spec align_right() -> flag().
align_right() ->
flag(40).
-file("src/legos/internal/flag.gleam", 222).
?DOC(false).
-spec align_bottom() -> flag().
align_bottom() ->
flag(41).
-file("src/legos/internal/flag.gleam", 226).
?DOC(false).
-spec center_x() -> flag().
center_x() ->
flag(42).
-file("src/legos/internal/flag.gleam", 230).
?DOC(false).
-spec center_y() -> flag().
center_y() ->
flag(43).
-file("src/legos/internal/flag.gleam", 234).
?DOC(false).
-spec width_between() -> flag().
width_between() ->
flag(44).
-file("src/legos/internal/flag.gleam", 238).
?DOC(false).
-spec height_between() -> flag().
height_between() ->
flag(45).
-file("src/legos/internal/flag.gleam", 242).
?DOC(false).
-spec behind() -> flag().
behind() ->
flag(46).
-file("src/legos/internal/flag.gleam", 246).
?DOC(false).
-spec height_text_area_content() -> flag().
height_text_area_content() ->
flag(47).
-file("src/legos/internal/flag.gleam", 250).
?DOC(false).
-spec font_variant() -> flag().
font_variant() ->
flag(48).
-file("src/legos/internal/flag.gleam", 254).
?DOC(false).
-spec transition() -> flag().
transition() ->
flag(49).