Skip to content

Conversation

@kixelated
Copy link
Collaborator

Not worth the semver bump.

@kixelated kixelated enabled auto-merge (squash) December 18, 2025 11:10
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 18, 2025

Walkthrough

The PR replaces the generic type wrapper Pair with Produce across multiple modules in the moq-lite library and its consumers. The struct in produce.rs is renamed from Pair<P, C> to Produce<P, C>. Associated type aliases in broadcast, frame, group, origin, and track modules (like BroadcastPair, FramePair, etc.) are removed, with corresponding produce() method return types updated to use the generic Produce wrapper directly. The module structure is updated to export from a produce module instead of pair. Field types in the relay cluster are updated from Pair to Produce. Import statements throughout are adjusted accordingly.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 25.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The PR title 'Revert the moq_lite changes' accurately describes the main change: reverting recent moq_lite modifications by replacing Produce type back to Pair and removing related type aliases.
Description check ✅ Passed The PR description 'Not worth the semver bump' relates to the changeset by providing rationale for the revert, indicating the changes have semantic versioning implications.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch backwards-compat2

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e94c2d6 and 76e8938.

📒 Files selected for processing (9)
  • rs/hang/src/catalog/root.rs (2 hunks)
  • rs/moq-lite/src/model/broadcast.rs (2 hunks)
  • rs/moq-lite/src/model/frame.rs (2 hunks)
  • rs/moq-lite/src/model/group.rs (1 hunks)
  • rs/moq-lite/src/model/mod.rs (1 hunks)
  • rs/moq-lite/src/model/origin.rs (2 hunks)
  • rs/moq-lite/src/model/produce.rs (1 hunks)
  • rs/moq-lite/src/model/track.rs (2 hunks)
  • rs/moq-relay/src/cluster.rs (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.rs

📄 CodeRabbit inference engine (CLAUDE.md)

In Rust crates, tests should be integrated within source files using inline test modules

Files:

  • rs/moq-lite/src/model/track.rs
  • rs/moq-lite/src/model/broadcast.rs
  • rs/moq-relay/src/cluster.rs
  • rs/moq-lite/src/model/group.rs
  • rs/moq-lite/src/model/frame.rs
  • rs/moq-lite/src/model/origin.rs
  • rs/moq-lite/src/model/produce.rs
  • rs/hang/src/catalog/root.rs
  • rs/moq-lite/src/model/mod.rs
🧬 Code graph analysis (6)
rs/moq-lite/src/model/track.rs (4)
rs/moq-lite/src/model/broadcast.rs (2)
  • produce (32-36)
  • new (57-67)
rs/moq-lite/src/model/frame.rs (2)
  • produce (15-19)
  • new (69-75)
rs/moq-lite/src/model/group.rs (2)
  • produce (26-30)
  • new (83-88)
rs/moq-lite/src/model/origin.rs (5)
  • produce (340-344)
  • new (17-19)
  • new (62-67)
  • new (112-118)
  • new (452-471)
rs/moq-lite/src/model/broadcast.rs (4)
rs/moq-lite/src/model/frame.rs (2)
  • produce (15-19)
  • new (69-75)
rs/moq-lite/src/model/group.rs (2)
  • produce (26-30)
  • new (83-88)
rs/moq-lite/src/model/origin.rs (5)
  • produce (340-344)
  • new (17-19)
  • new (62-67)
  • new (112-118)
  • new (452-471)
rs/moq-relay/src/cluster.rs (1)
  • new (73-82)
rs/moq-lite/src/model/group.rs (2)
rs/moq-lite/src/model/frame.rs (2)
  • produce (15-19)
  • new (69-75)
rs/moq-lite/src/model/track.rs (3)
  • produce (38-42)
  • new (31-36)
  • new (59-64)
rs/moq-lite/src/model/frame.rs (4)
rs/moq-lite/src/model/broadcast.rs (2)
  • produce (32-36)
  • new (57-67)
rs/moq-lite/src/model/group.rs (2)
  • produce (26-30)
  • new (83-88)
rs/moq-lite/src/model/origin.rs (5)
  • produce (340-344)
  • new (17-19)
  • new (62-67)
  • new (112-118)
  • new (452-471)
rs/moq-lite/src/model/track.rs (3)
  • produce (38-42)
  • new (31-36)
  • new (59-64)
rs/moq-lite/src/model/origin.rs (4)
rs/moq-lite/src/model/broadcast.rs (1)
  • produce (32-36)
rs/moq-lite/src/model/frame.rs (1)
  • produce (15-19)
rs/moq-lite/src/model/group.rs (1)
  • produce (26-30)
rs/moq-lite/src/model/track.rs (1)
  • produce (38-42)
rs/hang/src/catalog/root.rs (5)
rs/moq-lite/src/model/broadcast.rs (1)
  • produce (32-36)
rs/moq-lite/src/model/frame.rs (1)
  • produce (15-19)
rs/moq-lite/src/model/group.rs (1)
  • produce (26-30)
rs/moq-lite/src/model/origin.rs (1)
  • produce (340-344)
rs/moq-lite/src/model/track.rs (1)
  • produce (38-42)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Check
🔇 Additional comments (9)
rs/moq-lite/src/model/produce.rs (1)

7-10: LGTM! Clean rename from Pair to Produce.

The type rename is straightforward and makes the purpose more explicit. The generic parameters and public fields remain unchanged, maintaining the same functionality with a more descriptive name.

rs/moq-lite/src/model/mod.rs (1)

5-12: LGTM! Module organization updated consistently.

The module declaration and re-export are updated to match the Produce type rename. The change maintains the same public API surface while using the more descriptive module name.

rs/moq-lite/src/model/origin.rs (1)

340-344: LGTM! Consistent update to use Produce wrapper.

The produce() method now returns Produce<OriginProducer, OriginConsumer> following the same pattern as other model types. The implementation correctly constructs the producer, obtains its consumer, and wraps them in the new Produce type.

rs/moq-lite/src/model/broadcast.rs (1)

32-36: LGTM! Broadcast produce method updated consistently.

The changes follow the established pattern across all model types, returning Produce<BroadcastProducer, BroadcastConsumer> with proper construction.

rs/moq-lite/src/model/track.rs (1)

38-42: LGTM! Track produce method aligned with the refactoring.

The return type and construction are updated to use Produce<TrackProducer, TrackConsumer>, maintaining consistency across the codebase.

rs/moq-lite/src/model/group.rs (1)

26-30: LGTM! Group produce method updated consistently.

The changes align with the project-wide refactoring, using Produce<GroupProducer, GroupConsumer> with the standard construction pattern.

rs/hang/src/catalog/root.rs (1)

86-93: LGTM! Consumer code updated to match moq-lite API change.

The catalog produce method correctly adopts the new Produce type from moq-lite, maintaining the same functionality with updated imports and construction.

rs/moq-lite/src/model/frame.rs (1)

15-19: LGTM! Frame produce method completes the consistent refactoring.

All model types (Frame, Group, Track, Origin, Broadcast) now consistently return Produce<Producer, Consumer> from their produce() methods, providing a unified API pattern across the codebase.

rs/moq-relay/src/cluster.rs (1)

60-70: LGTM!

The type migration from Pair to Produce is consistent across all field declarations. The access patterns (.producer, .consumer) used throughout the file remain compatible with this change.


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
rs/moq-relay/src/cluster.rs (1)

73-81: Add inline test module to verify Cluster initialization and methods.

The initialization logic is correct, but the code violates the coding guideline requiring Rust files to include inline test modules. The auth.rs file in the same crate demonstrates the expected pattern with #[test] functions. Add a #[cfg(test)] mod tests { ... } block to verify the Cluster::new() method and key functionality.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e94c2d6 and 76e8938.

📒 Files selected for processing (9)
  • rs/hang/src/catalog/root.rs (2 hunks)
  • rs/moq-lite/src/model/broadcast.rs (2 hunks)
  • rs/moq-lite/src/model/frame.rs (2 hunks)
  • rs/moq-lite/src/model/group.rs (1 hunks)
  • rs/moq-lite/src/model/mod.rs (1 hunks)
  • rs/moq-lite/src/model/origin.rs (2 hunks)
  • rs/moq-lite/src/model/produce.rs (1 hunks)
  • rs/moq-lite/src/model/track.rs (2 hunks)
  • rs/moq-relay/src/cluster.rs (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.rs

📄 CodeRabbit inference engine (CLAUDE.md)

In Rust crates, tests should be integrated within source files using inline test modules

Files:

  • rs/moq-lite/src/model/track.rs
  • rs/moq-lite/src/model/broadcast.rs
  • rs/moq-relay/src/cluster.rs
  • rs/moq-lite/src/model/group.rs
  • rs/moq-lite/src/model/frame.rs
  • rs/moq-lite/src/model/origin.rs
  • rs/moq-lite/src/model/produce.rs
  • rs/hang/src/catalog/root.rs
  • rs/moq-lite/src/model/mod.rs
🧬 Code graph analysis (6)
rs/moq-lite/src/model/track.rs (4)
rs/moq-lite/src/model/broadcast.rs (2)
  • produce (32-36)
  • new (57-67)
rs/moq-lite/src/model/frame.rs (2)
  • produce (15-19)
  • new (69-75)
rs/moq-lite/src/model/group.rs (2)
  • produce (26-30)
  • new (83-88)
rs/moq-lite/src/model/origin.rs (5)
  • produce (340-344)
  • new (17-19)
  • new (62-67)
  • new (112-118)
  • new (452-471)
rs/moq-lite/src/model/broadcast.rs (4)
rs/moq-lite/src/model/frame.rs (2)
  • produce (15-19)
  • new (69-75)
rs/moq-lite/src/model/group.rs (2)
  • produce (26-30)
  • new (83-88)
rs/moq-lite/src/model/origin.rs (5)
  • produce (340-344)
  • new (17-19)
  • new (62-67)
  • new (112-118)
  • new (452-471)
rs/moq-relay/src/cluster.rs (1)
  • new (73-82)
rs/moq-lite/src/model/group.rs (2)
rs/moq-lite/src/model/frame.rs (2)
  • produce (15-19)
  • new (69-75)
rs/moq-lite/src/model/track.rs (3)
  • produce (38-42)
  • new (31-36)
  • new (59-64)
rs/moq-lite/src/model/frame.rs (4)
rs/moq-lite/src/model/broadcast.rs (2)
  • produce (32-36)
  • new (57-67)
rs/moq-lite/src/model/group.rs (2)
  • produce (26-30)
  • new (83-88)
rs/moq-lite/src/model/origin.rs (5)
  • produce (340-344)
  • new (17-19)
  • new (62-67)
  • new (112-118)
  • new (452-471)
rs/moq-lite/src/model/track.rs (3)
  • produce (38-42)
  • new (31-36)
  • new (59-64)
rs/moq-lite/src/model/origin.rs (4)
rs/moq-lite/src/model/broadcast.rs (1)
  • produce (32-36)
rs/moq-lite/src/model/frame.rs (1)
  • produce (15-19)
rs/moq-lite/src/model/group.rs (1)
  • produce (26-30)
rs/moq-lite/src/model/track.rs (1)
  • produce (38-42)
rs/hang/src/catalog/root.rs (5)
rs/moq-lite/src/model/broadcast.rs (1)
  • produce (32-36)
rs/moq-lite/src/model/frame.rs (1)
  • produce (15-19)
rs/moq-lite/src/model/group.rs (1)
  • produce (26-30)
rs/moq-lite/src/model/origin.rs (1)
  • produce (340-344)
rs/moq-lite/src/model/track.rs (1)
  • produce (38-42)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Check
🔇 Additional comments (9)
rs/moq-lite/src/model/produce.rs (1)

7-10: LGTM! Clean rename from Pair to Produce.

The type rename is straightforward and makes the purpose more explicit. The generic parameters and public fields remain unchanged, maintaining the same functionality with a more descriptive name.

rs/moq-lite/src/model/mod.rs (1)

5-12: LGTM! Module organization updated consistently.

The module declaration and re-export are updated to match the Produce type rename. The change maintains the same public API surface while using the more descriptive module name.

rs/moq-lite/src/model/origin.rs (1)

340-344: LGTM! Consistent update to use Produce wrapper.

The produce() method now returns Produce<OriginProducer, OriginConsumer> following the same pattern as other model types. The implementation correctly constructs the producer, obtains its consumer, and wraps them in the new Produce type.

rs/moq-lite/src/model/broadcast.rs (1)

32-36: LGTM! Broadcast produce method updated consistently.

The changes follow the established pattern across all model types, returning Produce<BroadcastProducer, BroadcastConsumer> with proper construction.

rs/moq-lite/src/model/track.rs (1)

38-42: LGTM! Track produce method aligned with the refactoring.

The return type and construction are updated to use Produce<TrackProducer, TrackConsumer>, maintaining consistency across the codebase.

rs/moq-lite/src/model/group.rs (1)

26-30: LGTM! Group produce method updated consistently.

The changes align with the project-wide refactoring, using Produce<GroupProducer, GroupConsumer> with the standard construction pattern.

rs/hang/src/catalog/root.rs (1)

86-93: LGTM! Consumer code updated to match moq-lite API change.

The catalog produce method correctly adopts the new Produce type from moq-lite, maintaining the same functionality with updated imports and construction.

rs/moq-lite/src/model/frame.rs (1)

15-19: LGTM! Frame produce method completes the consistent refactoring.

All model types (Frame, Group, Track, Origin, Broadcast) now consistently return Produce<Producer, Consumer> from their produce() methods, providing a unified API pattern across the codebase.

rs/moq-relay/src/cluster.rs (1)

60-70: LGTM!

The type migration from Pair to Produce is consistent across all field declarations. The access patterns (.producer, .consumer) used throughout the file remain compatible with this change.

@kixelated kixelated merged commit 645af60 into main Dec 18, 2025
1 check passed
@kixelated kixelated deleted the backwards-compat2 branch December 18, 2025 11:18
@moq-bot moq-bot bot mentioned this pull request Dec 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants