Skip to content

refactor(channel): establish an intermediate private source layout #207

Description

@tisonkun

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions