# `Mutare.Mutator.MacroHost.Target`
[🔗](https://github.com/foxbenjaminfox/mutare/blob/v0.2.1/lib/mutare/mutator/macro_host/target.ex#L1)

One logical fragment and its mutations returned by a macro host.

Build targets with `new/4`; the struct is opaque so Mutare can extend its internal
representation without making every field part of the callback contract.

# `t`

```elixir
@opaque t()
```

# `new`

```elixir
@spec new(
  Macro.t(),
  [Mutare.Mutator.mutation()],
  (Macro.t(), Macro.t() -&gt; Macro.t()),
  keyword()
) :: t()
```

Build a hosted mutation target.

Options are `:wrap`, a one-argument branch wrapper, and `:range`, the source range reported for
the site. Mutare defaults `:wrap` to identity and `:range` to the original fragment's range.

---

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