# `MingaEditor.Shell.Traditional.Flashes`
[🔗](https://github.com/jsmestad/minga/blob/main/lib/minga_editor/shell/traditional/flashes.ex#L1)

Pure aggregate for independent navigation and yank flash owners.

Replacing, advancing, or cancelling one leaf never changes the other leaf.

# `t`

```elixir
@type t() :: %MingaEditor.Shell.Traditional.Flashes{
  nav: MingaEditor.Shell.Traditional.NavFlash.t(),
  yank: MingaEditor.Shell.Traditional.YankFlash.t()
}
```

# `advance_nav`

```elixir
@spec advance_nav(t(), MingaEditor.Shell.Traditional.NavFlash.generation()) ::
  {:continue | :done | :stale, t()}
```

Advances only the matching navigation generation.

# `advance_yank`

```elixir
@spec advance_yank(t(), MingaEditor.Shell.Traditional.YankFlash.generation()) ::
  {:continue | :done | :stale, t()}
```

Advances only the matching yank generation.

# `cancel_nav`

```elixir
@spec cancel_nav(t()) :: t()
```

Cancels only the navigation flash.

# `cancel_yank`

```elixir
@spec cancel_yank(t()) :: t()
```

Cancels only the yank flash.

# `record_nav_timer`

```elixir
@spec record_nav_timer(
  t(),
  MingaEditor.Shell.Traditional.NavFlash.generation(),
  reference()
) :: t()
```

Records only the navigation timer handle.

# `record_yank_timer`

```elixir
@spec record_yank_timer(
  t(),
  MingaEditor.Shell.Traditional.YankFlash.generation(),
  reference()
) :: t()
```

Records only the yank timer handle.

# `replace_nav`

```elixir
@spec replace_nav(t(), non_neg_integer()) :: t()
```

Replaces only the navigation flash.

# `replace_yank`

```elixir
@spec replace_yank(
  t(),
  pid(),
  MingaEditor.Shell.Traditional.YankFlash.position(),
  MingaEditor.Shell.Traditional.YankFlash.position(),
  MingaEditor.Shell.Traditional.YankFlash.range_type()
) :: t()
```

Replaces only the yank flash.

---

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