keymap-seq 0.1.1

Multi-key sequence resolution for keymap-rs (leader keys, C-x C-s)
Documentation
# Changelog

All notable changes to `keymap-seq` are recorded here. The format follows
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/); the crate follows the
[Cargo pre-1.0 SemVer interpretation](https://doc.rust-lang.org/cargo/reference/semver.html)
(`0.MINOR.PATCH`, where a MINOR bump is breaking).

## [Unreleased]

## [0.1.1] - 2026-06-13

All changes are **additive**; no existing public API is removed or altered.

### Added

- `TimedPending` — a `PendingSequence` wrapper that adds deadline-aware feeding.
  `feed(map, key, now, window) -> TimedStep<'_, A>` advances the pending buffer
  and applies the timeout automatically (flushing with `Step::PassThrough` if
  `now` is past the deadline for the last-fed key). The library reads no clock —
  `now: Instant` is caller-supplied, keeping the state-free contract intact.
- `deadline(window: Duration) -> Option<Instant>` on `TimedPending` — returns the
  `Instant` by which the pending prefix must be resolved; use it as the event-loop
  poll timeout so the flush fires at the right moment.
- `TimedStep<'_, A>` (`#[non_exhaustive]`) — the return type of `TimedPending::feed`,
  mirroring `Step` but replacing `Step::Pending` with `TimedStep::Pending { deadline }`.

## [0.1.0] - 2026-05-28

### Added

- `SequenceKeymap<A>` for prefix-free multi-chord bindings (leader keys,
  emacs-style `ctrl+x ctrl+s`). `bind` rejects prefix-shadow collisions at
  build time with `SeqBindError::PrefixShadow`, keeping `lookup` total and
  time-free.
- `SequenceKeymap::lookup(&[KeyInput]) -> Match<'_, A>` with the exhaustive
  `Match { Exact(&A), Prefix, NoMatch }`; `continuations(&[KeyInput])` yields
  next-step `Continuation { Action(&A), Prefix }` pairs for which-key style
  menus; `bindings()` enumerates every leaf for discovery.
- `PendingSequence` and `Step` — a small caller-owned helper that folds the
  pending-key buffer and the idle-flush step into one place so the example loop
  stays a few lines. The pending buffer and any inter-key timeout still live
  caller-side; the table itself holds no clock.

[Unreleased]: https://github.com/S-Nakamur-a/keymap-rs/commits/main
[0.1.1]: https://crates.io/crates/keymap-seq/0.1.1
[0.1.0]: https://crates.io/crates/keymap-seq/0.1.0