ash_sqlite/lib/custom_extension.ex

21 lines
544 B
Elixir
Raw Normal View History

2023-09-23 14:52:22 +12:00
defmodule AshSqlite.CustomExtension do
@moduledoc """
A custom extension implementation.
"""
@callback install(version :: integer) :: String.t()
@callback uninstall(version :: integer) :: String.t()
defmacro __using__(name: name, latest_version: latest_version) do
quote do
@behaviour AshSqlite.CustomExtension
@extension_name unquote(name)
@extension_latest_version unquote(latest_version)
def extension, do: {@extension_name, @extension_latest_version, &install/1, &uninstall/1}
end
end
end