Current section

Files

Jump to
sprocket src docs@page_route.erl
Raw

src/docs@page_route.erl

-module(docs@page_route).
-compile([no_auto_import, nowarn_unused_vars]).
-export([from_string/1, href/1]).
-export_type([page/0, page_route/0]).
-type page() :: {page, binary(), page_route()}.
-type page_route() :: introduction |
components |
events |
state_management |
effects |
hooks |
under_the_hood |
misc |
unknown.
-spec from_string(binary()) -> page_route().
from_string(Route) ->
case Route of
<<"/"/utf8>> ->
introduction;
<<"/components"/utf8>> ->
components;
<<"/props_and_events"/utf8>> ->
events;
<<"/state"/utf8>> ->
state_management;
<<"/effects"/utf8>> ->
effects;
<<"/hooks"/utf8>> ->
hooks;
<<"/under_the_hood"/utf8>> ->
under_the_hood;
<<"/misc"/utf8>> ->
misc;
_ ->
unknown
end.
-spec href(page_route()) -> binary().
href(Route) ->
case Route of
introduction ->
<<"/"/utf8>>;
components ->
<<"/components"/utf8>>;
events ->
<<"/props_and_events"/utf8>>;
state_management ->
<<"/state"/utf8>>;
effects ->
<<"/effects"/utf8>>;
hooks ->
<<"/hooks"/utf8>>;
under_the_hood ->
<<"/under_the_hood"/utf8>>;
misc ->
<<"/misc"/utf8>>;
unknown ->
docs@utils@logger:error(<<"Unknown page route"/utf8>>),
erlang:error(#{gleam_error => panic,
message => <<"panic expression evaluated"/utf8>>,
module => <<"docs/page_route"/utf8>>,
function => <<"href"/utf8>>,
line => 45})
end.