# `MingaEditor.State.OperationProgress`
[🔗](https://github.com/jsmestad/minga/blob/main/lib/minga_editor/state/operation_progress.ex#L1)

Domain-authored completed-unit progress for an operation.

# `error`

```elixir
@type error() :: :invalid_progress_range
```

# `t`

```elixir
@type t() :: %MingaEditor.State.OperationProgress{
  current: non_neg_integer(),
  total: pos_integer()
}
```

# `new`

```elixir
@spec new(integer(), integer()) :: {:ok, t()} | {:error, error()}
```

Builds progress when current is non-negative and does not exceed a positive wire-safe total.

# `new!`

```elixir
@spec new!(integer(), integer()) :: t()
```

Builds valid progress or raises for an impossible range.

---

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