# `Adze.Outline`
[🔗](https://github.com/matthewlehner/adze/blob/v0.1.0/lib/adze/outline.ex#L1)

Parse Elixir source and return its structural outline.

Each top-level `defmodule` becomes a node with its children:
defs, defmacros, attributes, directives, defstructs, nested modules.
Every node carries a line range so callers can `Read` just the
bytes they need.

# `definition`

```elixir
@type definition() :: map()
```

# `outline`

```elixir
@spec outline(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, term()}
```

# `outline_file`

```elixir
@spec outline_file(Path.t()) :: {:ok, map()} | {:error, term()}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
