Current section
Files
Jump to
Current section
Files
src/erl/lang/protocols/clojerl.IEncodeClojure.erl
%%% Code generate by scripts/generate-protocols
-module('clojerl.IEncodeClojure').
-include("clojerl.hrl").
-include("clojerl_int.hrl").
-clojure(true).
-protocol(true).
-export(['erl->clj'/2]).
-export([?SATISFIES/1]).
-export([?EXTENDS/1]).
-callback 'erl->clj'(any(), any()) -> any().
-optional_callbacks(['erl->clj'/2]).
'erl->clj'(X, Recursive) ->
case X of
#{?TYPE := _} ->
clj_protocol:not_implemented(?MODULE, 'erl->clj', X);
X_ when erlang:is_binary(X_) ->
clj_protocol:not_implemented(?MODULE, 'erl->clj', X);
X_ when erlang:is_boolean(X_) ->
clj_protocol:not_implemented(?MODULE, 'erl->clj', X);
X_ when erlang:is_list(X_) ->
'erlang.List':'erl->clj'(X, Recursive);
X_ when erlang:is_map(X_) ->
'erlang.Map':'erl->clj'(X, Recursive);
X_ when erlang:is_tuple(X_) ->
'erlang.Tuple':'erl->clj'(X, Recursive);
?NIL ->
clj_protocol:not_implemented(?MODULE, 'erl->clj', X);
_ ->
clj_protocol:not_implemented(?MODULE, 'erl->clj', X)
end.
?SATISFIES(X) ->
case X of
#{?TYPE := _} -> false;
X_ when erlang:is_binary(X_) -> false;
X_ when erlang:is_boolean(X_) -> false;
X_ when erlang:is_list(X_) -> true;
X_ when erlang:is_map(X_) -> true;
X_ when erlang:is_tuple(X_) -> true;
?NIL -> false;
_ -> false
end.
?EXTENDS(X) ->
case X of
'erlang.List' -> true;
'erlang.Map' -> true;
'erlang.Tuple' -> true;
_ -> false
end.