You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bat/tests/syntax-tests/highlighted/Elixir/command.ex

32 lines
6.2 KiB
Elixir

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

defmodule Charlex.Command do
 @callback usage() :: [String.t()]
 @callback description() :: String.t()
 @callback parse_args(args :: String.t()) :: any()
 @callback run(context :: Map.t(), args :: [String.t()] | any()) :: String.t() | any()
 @optional_callbacks usage: 0, description: 0, parse_args: 1
 defmacro __using__(_opts) do
 quote do
 @behaviour unquote(__MODULE__)
 @impl true
 def usage, do: "This command is without usage, will add it soon"
 @impl true
 def description, do: "This command is without description, will add it soon"
 @impl true
 def run(_context, _args), do: :ok
 @impl true
 def parse_args(args), do: args |> String.split() |> Kernel.tl()
 defoverridable parse_args: 1, description: 0, run: 2, usage: 0
 end
 end
end