Follow-up
This issue records the intermediate private source layout that was implemented before 0.7. PR #234 subsequently removed the private channel wrapper and placed oneshot, mpsc, broadcast, and watch directly under asyncband/src/, matching their public crate-root modules. The public paths and feature flags remained unchanged. Shared cross-family machinery now belongs under the private crate-level internal module.
Parent: #206
Goal
Move the existing oneshot and MPSC implementations into the terminal private channel source family without changing their public API, behavior, feature flags, or algorithms.
Scope
- Add a private
channel module below the crate root.
- Move the existing
oneshot and mpsc source trees under asyncband/src/channel/.
- Keep MPSC-specific error definitions inside the
mpsc implementation until another channel family demonstrates a useful shared contract.
- Re-export
oneshot and mpsc at the crate root so all existing public paths remain unchanged.
- Update internal visibility and documentation links required by the move.
Non-goals
- No MPSC algorithm rewrite.
- No new channel family or constructor.
- No channel feature consolidation.
- No public
asyncband::channel module.
Acceptance criteria
- Existing
asyncband::oneshot and asyncband::mpsc APIs remain source-compatible.
- Builds with no features,
oneshot, mpsc, and all features succeed.
- The workspace test and lint workflows pass, and a semver comparison against the pre-change
main revision reports no API changes.
- The pull request remains a move-only structural change apart from visibility and path adjustments required by the new ownership boundary.
Follow-up
This issue records the intermediate private source layout that was implemented before 0.7. PR #234 subsequently removed the private
channelwrapper and placedoneshot,mpsc,broadcast, andwatchdirectly underasyncband/src/, matching their public crate-root modules. The public paths and feature flags remained unchanged. Shared cross-family machinery now belongs under the private crate-levelinternalmodule.Parent: #206
Goal
Move the existing oneshot and MPSC implementations into the terminal private
channelsource family without changing their public API, behavior, feature flags, or algorithms.Scope
channelmodule below the crate root.oneshotandmpscsource trees underasyncband/src/channel/.mpscimplementation until another channel family demonstrates a useful shared contract.oneshotandmpscat the crate root so all existing public paths remain unchanged.Non-goals
asyncband::channelmodule.Acceptance criteria
asyncband::oneshotandasyncband::mpscAPIs remain source-compatible.oneshot,mpsc, and all features succeed.mainrevision reports no API changes.