Packages

BEAM-native coding agent substrate for Elixir/OTP projects

Current section

Files

Jump to
vibe lib vibe debug.ex
Raw

lib/vibe/debug.ex

defmodule Vibe.Debug do
@moduledoc """
Compile-time gated debug hooks.
Code wrapped in `run/1` is completely compiled out when
`config :vibe, :compile_time_debug` is false.
"""
defmacro enabled? do
debug_enabled?()
end
defmacro run(do: block) do
if debug_enabled?() do
block
else
quote(do: :ok)
end
end
defmacro run(default, blocks) do
block = Keyword.fetch!(blocks, :do)
if debug_enabled?() do
block
else
default
end
end
defp debug_enabled? do
Application.get_env(:vibe, :compile_time_debug, false)
end
end