# `Statifier.Machine.Content.If.Branch`
[🔗](https://github.com/riddler/statifier-ex/blob/v2.0.0/lib/statifier/machine/content/if.ex#L67)

One compiled `<if>`/`<elseif>`/`<else>` partition - a small struct
alongside `Statifier.Machine.Content.If` (Decision 8 of the plan cited on
the parent module), parallel to `Statifier.Document.If.Branch` without
being identical to it: this struct carries no `c_index` of its own (a
branch is not itself a dispatchable content node, only its own content
is), and its `cond` is already compiled.

`cond` is `nil` for the `<else>` branch and for a branch with no `cond`
at all - spec 4.5.1. `cond_location` is the diagnostic span
`Statifier.Compiler.Expressions.compile/3` used (or would have used) for
`cond`, `nil` exactly when `cond` is. `content` is the branch's own
dense, document-order `c_index` list - never a list of inline nodes -
resolved through `Statifier.Machine.content/2` at runtime.

# `t`

```elixir
@type t() :: %Statifier.Machine.Content.If.Branch{
  cond: Statifier.Machine.expr() | nil,
  cond_location: Statifier.Parser.Location.t() | nil,
  content: [non_neg_integer()]
}
```

---

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