# `Statifier.Machine.Content.Cancel`
[🔗](https://github.com/riddler/statifier-ex/blob/v2.0.0/lib/statifier/machine/content/cancel.ex#L1)

A compiled `<cancel>` executable-content node (spec 6.3) - the interned
counterpart to `Statifier.Document.Cancel`.

`sendid` folds `sendid`/`sendidexpr`'s own mutually exclusive pair into a
single `Machine.expr() | nil`, exactly as `Statifier.Machine.Content.Send`
folds each of its own static/expr attribute pairs: `{:static, s}` from a
literal `sendid`, `{:compiled, ...}` from `sendidexpr`, `nil` when neither
was written (an already-validated document never writes both - 6.3.1's
own "exactly one of" constraint).

`attribute_locations` is `Statifier.Document.Cancel`'s own map, carried
through unchanged - the same call `Statifier.Machine.Content.Send` makes
for its own nine source attributes.

Its `Statifier.ExecutableContent` implementation lives right below the
struct: this file is the whole node, top to bottom, with no dispatcher
anywhere else in the tree.

# `t`

```elixir
@type t() :: %Statifier.Machine.Content.Cancel{
  attribute_locations: Statifier.Document.attribute_locations(),
  c_index: non_neg_integer(),
  location: Statifier.Parser.Location.t(),
  sendid: Statifier.Machine.expr() | nil
}
```

---

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