-module(lightspeed@component). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/lightspeed/component.gleam"). -export([html/1, to_html/1, fingerprint/1]). -export_type([rendered/0, command/1, component/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(" Component contract for Lightspeed applications.\n"). -type rendered() :: {rendered, binary(), binary()}. -type command(HJX) :: no_command | {dispatch, HJX} | {push, lightspeed@agent@isa:instruction()}. -type component(HJY, HJZ) :: {component, fun(() -> HJY), fun((HJY, HJZ) -> {HJY, list(command(HJZ))}), fun((HJY) -> rendered())}. -file("src/lightspeed/component.gleam", 30). ?DOC(" Construct rendered HTML with a development fingerprint.\n"). -spec html(binary()) -> rendered(). html(Markup) -> {rendered, Markup, <<"dev"/utf8>>}. -file("src/lightspeed/component.gleam", 35). ?DOC(" Extract HTML from a rendered value.\n"). -spec to_html(rendered()) -> binary(). to_html(Rendered) -> erlang:element(2, Rendered). -file("src/lightspeed/component.gleam", 40). ?DOC(" Extract the static-shape fingerprint from a rendered value.\n"). -spec fingerprint(rendered()) -> binary(). fingerprint(Rendered) -> erlang:element(3, Rendered).