# `Mailglass.Installer.Apply`
[🔗](https://github.com/szTheory/mailglass/blob/v1.2.0/lib/mailglass/installer/apply.ex#L1)

Applies installer operations with deterministic ordering and outcome labels.

# `result_map`

```elixir
@type result_map() :: %{
  operations: [Mailglass.Installer.Operation.t()],
  counts: %{
    create: non_neg_integer(),
    update: non_neg_integer(),
    unchanged: non_neg_integer(),
    conflict: non_neg_integer()
  },
  manifest_path: String.t(),
  dry_run?: boolean()
}
```

# `run`

```elixir
@spec run(
  [Mailglass.Installer.Operation.t()],
  keyword()
) :: {:ok, result_map()} | {:error, term()}
```

Runs the installer plan and classifies each operation as
`:create | :update | :unchanged | :conflict`.

---

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