Skip to content

Instantly share code, notes, and snippets.

@shizzard
Created December 19, 2018 08:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shizzard/f97fb683caf1a1804e2aff00f4e5e725 to your computer and use it in GitHub Desktop.
Save shizzard/f97fb683caf1a1804e2aff00f4e5e725 to your computer and use it in GitHub Desktop.
-module(priv_basic).
-compile({parse_transform, cloak_transform}).
-record(?MODULE, {
a,
b = atom,
prot_c = 0,
priv_d = 0
}).
-file("/Users/shizz/code/cloak/_build/test/lib/cloak/test/priv/priv_bas"
"ic.erl",
1).
-module(priv_basic).
-record(priv_basic,{a,b = atom,prot_c = 0,priv_d = 0}).
-export([export/1,b/2,a/2,prot_c/1,b/1,a/1,update/2,new/1]).
new(#{} = Var_map_0) ->
case
validate_struct(optional_new(Var_map_0,
required_new(Var_map_0,
#priv_basic{},
[{a,<<97>>}]),
[{b,<<98>>}]))
of
{ok,Var_value_1} ->
Var_value_1;
{error,Var_reason_0} ->
_ = {suppressed_logging,
"cloak badarg: struct validation failed with reason: ~"
"p",
[Var_reason_0]},
error(badarg)
end;
new(_) ->
error(badarg).
required_new(_, Var_record_0, []) ->
Var_record_0;
required_new(Var_map_0,
Var_record_0,
[{Var_key_0,Var_binkey_0}|Var_keys_0]) ->
case
{maps:is_key(Var_key_0, Var_map_0),
maps:is_key(Var_binkey_0, Var_map_0)}
of
{true,_} ->
required_new(Var_map_0,
priv_basic:Var_key_0(Var_record_0,
maps:get(Var_key_0,
Var_map_0)),
Var_keys_0);
{_,true} ->
required_new(Var_map_0,
priv_basic:Var_key_0(Var_record_0,
maps:get(Var_binkey_0,
Var_map_0)),
Var_keys_0);
{_,_} ->
_ = {suppressed_logging,
"cloak badarg: required field '~s' is not found",
[Var_key_0]},
error(badarg)
end.
optional_new(_, Var_record_0, []) ->
Var_record_0;
optional_new(Var_map_0,
Var_record_0,
[{Var_key_0,Var_binkey_0}|Var_keys_0]) ->
case
{maps:is_key(Var_key_0, Var_map_0),
maps:is_key(Var_binkey_0, Var_map_0)}
of
{true,_} ->
optional_new(Var_map_0,
priv_basic:Var_key_0(Var_record_0,
maps:get(Var_key_0,
Var_map_0)),
Var_keys_0);
{_,true} ->
optional_new(Var_map_0,
priv_basic:Var_key_0(Var_record_0,
maps:get(Var_binkey_0,
Var_map_0)),
Var_keys_0);
{_,_} ->
optional_new(Var_map_0, Var_record_0, Var_keys_0)
end.
update(#priv_basic{} = Var_record_0, #{} = Var_map_0) ->
case
validate_struct(optional_new(Var_map_0,
Var_record_0,
[{a,<<97>>},{b,<<98>>}]))
of
{ok,Var_value_1} ->
Var_value_1;
{error,Var_reason_0} ->
_ = {suppressed_logging,
"cloak badarg: struct validation failed with reason: ~"
"p",
[Var_reason_0]},
error(badarg)
end;
update(_, _) ->
error(badarg).
a(#priv_basic{a = Var_a_0}) ->
Var_a_0;
a(_) ->
error(badarg).
b(#priv_basic{b = Var_b_0}) ->
Var_b_0;
b(_) ->
error(badarg).
prot_c(#priv_basic{prot_c = Var_prot_c_0}) ->
Var_prot_c_0;
prot_c(_) ->
error(badarg).
a(#priv_basic{} = Var_record_0, Var_value_0) ->
case validate_a(Var_value_0) of
{ok,Var_value_1} ->
Var_record_0#priv_basic{a = Var_value_1};
{error,Var_reason_0} ->
_ = {suppressed_logging,
"cloak badarg: field '~s' validation failed with reaso"
"n: ~p",
[a,Var_reason_0]},
error(badarg)
end;
a(_, _) ->
error(badarg).
b(#priv_basic{} = Var_record_0, Var_value_0) ->
case validate_b(Var_value_0) of
{ok,Var_value_1} ->
Var_record_0#priv_basic{b = Var_value_1};
{error,Var_reason_0} ->
_ = {suppressed_logging,
"cloak badarg: field '~s' validation failed with reaso"
"n: ~p",
[b,Var_reason_0]},
error(badarg)
end;
b(_, _) ->
error(badarg).
export(#priv_basic{} = Var_record_0) ->
#{a => Var_record_0#priv_basic.a,b => Var_record_0#priv_basic.b};
export(_) ->
error(badarg).
validate_struct(Var_value_0) ->
{ok,Var_value_0}.
validate_a(Var_value_0) ->
{ok,Var_value_0}.
validate_b(Var_value_0) ->
{ok,Var_value_0}.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment