-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.