defmodule Cldr.Macros do @moduledoc false defmacro is_false(value) do quote do is_nil(unquote(value)) or unquote(value) == false end end defmacro doc_since(version) do if Version.match?(System.version(), ">= 1.7.0") do quote do @doc since: unquote(version) end end end defmacro calendar_impl do if Version.match?(System.version(), ">= 1.10.0-dev") do quote do @impl true end end end defmacro warn_once(key, message, level \\ :warn) do caller = __CALLER__.module quote do require Logger if :persistent_term.get({unquote(caller), unquote(key)}, true) do Logger.unquote(level)(unquote(message)) :persistent_term.put({unquote(caller), unquote(key)}, nil) end end end end