# `ToonEx.Decode.StructuralParser`
[🔗](https://github.com/ohhi-vn/toon_ex/blob/v1.1.0/lib/toon_ex/decode/structural_parser.ex#L1)

Structural parser for TOON format that handles indentation-based nesting.

This parser processes TOON input by analyzing indentation levels and building
a hierarchical structure from the flat text representation.

# `line_info`

```elixir
@type line_info() :: %{
  content: String.t(),
  indent: non_neg_integer(),
  line_number: non_neg_integer(),
  original: String.t()
}
```

# `parse_metadata`

```elixir
@type parse_metadata() :: %{
  quoted_keys: MapSet.t(String.t()),
  key_order: [String.t()]
}
```

# `parse`

```elixir
@spec parse(String.t(), map()) ::
  {:ok, {term(), parse_metadata()}} | {:error, ToonEx.DecodeError.t()}
```

Parses TOON input string into a structured format.

Returns a tuple of {result, metadata} where metadata contains quoted_keys and key_order.

---

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