АР
Size: a a a
АР
АР
АР
АР
АР
АР
DR
AK
АР
АР
АР
LL
defmodule Mac do
defmacro __using__(_opts) do
quote do
require Mac
import Mac
def message(msg, data \\ %{})
end
end
defmacro define_message(code, msg) do
quote do
def message(unquote(code), data) do
unquote(msg)
end
end
end
end
defmodule Mac.Impl do
use Mac
define_message(:TEST, "TEST")
define_message(:TEST_DATA, "TEST: #{inspect data}")
end
Macro.expand
YT
defmodule Mac do
defmacro __using__(_opts) do
quote do
require Mac
import Mac
def message(msg, data \\ %{})
end
end
defmacro define_message(code, msg) do
quote do
def message(unquote(code), data) do
unquote(msg)
end
end
end
end
defmodule Mac.Impl do
use Mac
define_message(:TEST, "TEST")
define_message(:TEST_DATA, "TEST: #{inspect data}")
end
LL
defmodule Mac do
defmacro __using__(_opts) do
quote do
require Mac
import Mac
def message(msg, data \\ %{})
end
end
defmacro define_message(code, msg) do
quote do
def message(unquote(code), data) do
unquote(msg)
end
end
end
end
defmodule Mac.Impl do
use Mac
define_message(:TEST, "TEST")
define_message(:TEST_DATA, "TEST: #{inspect data}")
end
var!
YT
var!
LL
EEx
?!YT
EEx
?!defmacro def_msg(code, msg) do
quote do
def msg(unquote(code), data) do
EEx.eval_string(unquote(msg), data)
end
end
end
YT
EEx
?!LL
defmacro def_msg(code, msg) do
quote do
def msg(unquote(code), data) do
EEx.eval_string(unquote(msg), data)
end
end
end
YT