Skip to content

feat: link extension traits for detached links (#389, stage 3) - #395

Merged
lxsaah merged 1 commit into
feature/388-input-output-connectionsfrom
feature/389-link-ext-any-r
Nov 2, 2026
Merged

lxsaah merged 1 commit into
feature/388-input-output-connectionsfrom
feature/389-link-ext-any-r

Conversation

@lxsaah

@lxsaah lxsaah commented Nov 2, 2026

Copy link
Copy Markdown
Member

Description

Stage 3 of 3 for #389 (design 059), into the #392 feature branch.

  • MqttLinkExt, MqttOutboundLinkExt (aimdb-mqtt-connector), Ros2LinkExt (aimdb-zenoh-connector) and LinkCodecBuilderExt (aimdb-data-contracts) are implemented for OutboundLinkBuilder<T, R> / InboundLinkBuilder<T, R> rather than the attached aliases. As a result, with_qos, with_retain, with_depth, with_reliability and with_link_codec also work on OutboundLink / InboundLink. Only the impl headers changed; the bodies are the same.
  • The MQTT link_ext module docs name the generic builders and add a compiling example of the detached form, using reg.input(..).output(..).
  • docs/aimdb-usage-guide.md gets a short "Links as values" section.

Tests

  • MQTT detached_links_take_the_same_knobs: detached links with QoS, retain and the Postcard codec record the same config as link_to / link_from, and both take the bounded payload path.
  • Zenoh tests/link_ext.rs: depth and reliability are recorded the same way on both forms.
  • data-contracts codec_verb_applies_to_detached_links: the codec and its recorded wire format on .output() / .input() links.

Checked locally:

  • the full aimdb-data-contracts test command from the design doc
  • the MQTT link_ext_tests and doctests
  • the new zenoh test

clippy and the demo check are left to CI.

The changelog entries for all three stages follow in one commit on the feature branch before it merges to main.

Related Issue

🤖 Generated with Claude Code

MqttLinkExt, MqttOutboundLinkExt, Ros2LinkExt and LinkCodecBuilderExt
are implemented for OutboundLinkBuilder<T, R> / InboundLinkBuilder<T, R>
instead of the attached aliases, so with_qos, with_retain, with_depth,
with_reliability and with_link_codec also work on OutboundLink /
InboundLink. Bodies are unchanged.

Tests per crate check that a detached link records the same config as
link_to / link_from. The usage guide gains a "Links as values" section.

Stage 3 of design 059.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@lxsaah
lxsaah merged commit 95ae452 into feature/388-input-output-connections Nov 2, 2026
@lxsaah
lxsaah deleted the feature/389-link-ext-any-r branch November 2, 2026 18:51
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.

1 participant