fix(tpl): add few missing `@doc`s + correct typespecs
This commit is contained in:
parent
a9693eada7
commit
1fcdfe991c
|
@ -127,6 +127,9 @@ parse_accessor(Var) ->
|
|||
Name
|
||||
end.
|
||||
|
||||
%% @doc Validate a template against a set of allowed variables.
|
||||
%% If the given template contains any variable not in the allowed set, an error
|
||||
%% is returned.
|
||||
-spec validate([varname()], t()) ->
|
||||
ok | {error, [_Error :: {varname(), disallowed}]}.
|
||||
validate(Allowed, Template) ->
|
||||
|
@ -146,8 +149,9 @@ validate(Allowed, Template) ->
|
|||
is_const(Template) ->
|
||||
validate([], Template) == ok.
|
||||
|
||||
%% @doc Restore original term from a parsed template.
|
||||
-spec unparse(t()) ->
|
||||
unicode:chardata().
|
||||
term().
|
||||
unparse({'$tpl', Template}) ->
|
||||
unparse_deep(Template);
|
||||
unparse(Template) ->
|
||||
|
@ -208,17 +212,20 @@ render_value(Name, Value, #{var_trans := TransFun}) when is_function(TransFun, 2
|
|||
render_value(_Name, Value, #{}) ->
|
||||
to_string(Value).
|
||||
|
||||
%% @doc Render a template with given bindings.
|
||||
%% Behaves like `render/2`, but raises an error exception if one or more placeholders
|
||||
%% are not found in the bindings.
|
||||
-spec render_strict(t(), bindings()) ->
|
||||
unicode:chardata().
|
||||
term().
|
||||
render_strict(Template, Bindings) ->
|
||||
render_strict(Template, Bindings, #{}).
|
||||
|
||||
-spec render_strict(t(), bindings(), render_opts()) ->
|
||||
unicode:chardata().
|
||||
term().
|
||||
render_strict(Template, Bindings, Opts) ->
|
||||
case render(Template, Bindings, Opts) of
|
||||
{String, []} ->
|
||||
String;
|
||||
{Render, []} ->
|
||||
Render;
|
||||
{_, Errors = [_ | _]} ->
|
||||
error(Errors, [unparse(Template), Bindings])
|
||||
end.
|
||||
|
|
Loading…
Reference in New Issue