defmodule Temple.Ast.RightArrow do
@moduledoc false
@behaviour Temple.Parser
use TypedStruct
typedstruct do
field :elixir_ast, Macro.t()
field :children, [map()]
end
@impl true
def applicable?({:->, _, _}), do: true
def applicable?(_), do: false
def run({func, meta, [pattern, args]}) do
children = Temple.Parser.parse(args)
Temple.Ast.new(__MODULE__, elixir_ast: {func, meta, [pattern]}, children: children)