-module(sprocket@render). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -define(FILEPATH, "src/sprocket/render.gleam"). -export([renderer/2, render_element/2]). -export_type([renderer/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. ?MODULEDOC(false). -type renderer(IJY) :: {renderer, fun((sprocket@internal@reconcile:reconciled_element()) -> IJY)}. -file("src/sprocket/render.gleam", 13). ?DOC(false). -spec renderer( renderer(IJZ), fun((fun((sprocket@internal@reconcile:reconciled_element()) -> IJZ)) -> IKB) ) -> IKB. renderer(R, Cb) -> Cb(erlang:element(2, R)). -file("src/sprocket/render.gleam", 21). ?DOC(false). -spec render_element(sprocket@internal@context:element(), renderer(IKC)) -> IKC. render_element(El, R) -> renderer( R, fun(Render) -> Cuid_channel@1 = case begin _pipe = sprocket@internal@utils@cuid:start(), gleam@result:map_error( _pipe, fun(Error) -> sprocket@internal@logger:error( <<"render.render: Failed to start a cuid channel"/utf8>> ), Error end ) end of {ok, Cuid_channel} -> Cuid_channel; _assert_fail -> erlang:error(#{gleam_error => let_assert, message => <<"Pattern match failed, no pattern matched the value."/utf8>>, file => <>, module => <<"sprocket/render"/utf8>>, function => <<"render_element"/utf8>>, line => 26, value => _assert_fail, start => 823, 'end' => 992, pattern_start => 834, pattern_end => 850}) end, Dispatch_client_hook_event = fun(_, _, _) -> nil end, Trigger_reconciliation = fun() -> nil end, Update_hook = fun(_, _) -> nil end, Ctx = sprocket@internal@context:new( El, Cuid_channel@1, Dispatch_client_hook_event, Trigger_reconciliation, Update_hook ), {reconciled_result, _, Reconciled} = sprocket@internal@reconcilers@recursive:reconcile( Ctx, El, none, none ), Render(Reconciled) end ).