Driver convergence (3/5): delete FlowSessionDriver + FlowDatagramDriver (keep FlowDriver) #99

Closed
opened 2026-06-28 13:31:40 +00:00 by p13marc · 0 comments
p13marc commented 2026-06-28 13:31:40 +00:00 (Migrated from github.com)

Breaking. Part of #84 — see RFC plans/175-driver-event-convergence-rfc.md (PR #96), §3.2 + Q1.

FlowSessionDriver and FlowDatagramDriver are ~95% structural twins carrying 10 constructors each (the constructor explosion). Their single-parser convenience is subsumed by Driver<E> + one slot; the reassembly-vs-noop distinction is already a builder choice (session_* vs datagram_* registration).

Tasks (resolved: delete, not deprecate)

  • Delete FlowSessionDriver (session_driver.rs) + FlowDatagramDriver (datagram_driver.rs) and their 20 constructors.
  • Keep FlowDriver as the documented low-level run-to-completion primitive (issue guardrail). Optionally trim its 6 constructors to new + with_config.
  • Retire SessionEvent usage in these paths (tracked separately in the SessionEvent issue).
  • Update lib.rs re-exports, prelude, docs (recipes.md single-parser recipe -> Driver<E> + one slot).

netring impact

Only pcap_flow.rs instantiates these (one file). Coordinate via the netring tracking issue.

Acceptance

Types gone; single-parser recipe documented via Driver<E>; full gates clean; CHANGELOG + migration recipe.

Part of #84.

Breaking. Part of #84 — see RFC `plans/175-driver-event-convergence-rfc.md` (PR #96), §3.2 + Q1. `FlowSessionDriver` and `FlowDatagramDriver` are ~95% structural twins carrying **10 constructors each** (the constructor explosion). Their single-parser convenience is subsumed by `Driver<E>` + one slot; the reassembly-vs-noop distinction is already a builder choice (`session_*` vs `datagram_*` registration). ### Tasks (resolved: delete, not deprecate) - [ ] Delete `FlowSessionDriver` (`session_driver.rs`) + `FlowDatagramDriver` (`datagram_driver.rs`) and their 20 constructors. - [ ] **Keep `FlowDriver`** as the documented low-level run-to-completion primitive (issue guardrail). Optionally trim its 6 constructors to `new` + `with_config`. - [ ] Retire `SessionEvent` usage in these paths (tracked separately in the SessionEvent issue). - [ ] Update lib.rs re-exports, prelude, docs (`recipes.md` single-parser recipe -> `Driver<E>` + one slot). ### netring impact Only `pcap_flow.rs` instantiates these (one file). Coordinate via the netring tracking issue. ### Acceptance Types gone; single-parser recipe documented via `Driver<E>`; full gates clean; CHANGELOG + migration recipe. Part of #84.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
marcpardo/flowscope#99
No description provided.