Packages
lustre
5.5.2
5.7.1
5.7.0
5.6.0
5.5.2
5.5.1
5.5.0
5.4.0
5.3.5
5.3.4
5.3.3
5.3.2
5.3.1
5.3.0
5.2.1
5.2.0
5.1.1
5.1.0
5.0.3
5.0.2
5.0.1
5.0.0
4.6.4
4.6.3
4.6.2
4.6.1
4.6.0
4.5.1
4.5.0
4.4.4
4.4.3
4.4.1
4.4.0
4.3.6
4.3.5
4.3.4
4.3.3
4.3.2
4.3.1
4.3.0
4.2.6
4.2.5
4.2.4
4.2.3
4.2.2
4.2.1
4.2.0
4.1.8
4.1.7
4.1.6
4.1.5
4.1.4
4.1.3
4.1.2
4.1.1
4.1.0
4.0.0
4.0.0-rc1
4.0.0-rc.2
3.1.4
3.1.3
3.1.2
3.1.1
3.1.0
3.0.12
3.0.11
3.0.10
3.0.9
3.0.8
3.0.7
3.0.6
3.0.5
3.0.4
3.0.3
3.0.2
3.0.1
3.0.0
3.0.0-rc.8
3.0.0-rc.7
3.0.0-rc.6
3.0.0-rc.5
3.0.0-rc.4
3.0.0-rc.3
3.0.0-rc.2
3.0.0-rc.1
2.0.1
2.0.0
1.3.0
1.2.0
1.1.0
1.0.0
Create HTML templates, single page applications, Web Components, and real-time server components in Gleam!
Current section
Files
Jump to
Current section
Files
src/lustre@internals@ref.erl
-module(lustre@internals@ref).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/lustre/internals/ref.gleam").
-export([from/1, equal/2, equal_lists/2]).
-export_type([ref/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 ref() :: any().
-file("src/lustre/internals/ref.gleam", 7).
?DOC(false).
-spec from(any()) -> ref().
from(Value) ->
gleam@function:identity(Value).
-file("src/lustre/internals/ref.gleam", 11).
?DOC(false).
-spec equal(ref(), ref()) -> boolean().
equal(A, B) ->
A =:= B.
-file("src/lustre/internals/ref.gleam", 16).
?DOC(false).
-spec equal_lists(list(ref()), list(ref())) -> boolean().
equal_lists(Xs, Ys) ->
case {Xs, Ys} of
{[], []} ->
true;
{[], _} ->
false;
{_, []} ->
false;
{[X | Xs@1], [Y | Ys@1]} ->
case equal(X, Y) of
true ->
equal_lists(Xs@1, Ys@1);
false ->
false
end
end.