Skip to content

feat(protocol): expose DynKeyExprFormatter for runtime format extension#207

Merged
YuanYuYuan merged 4 commits into
mainfrom
dev/remove-bridge-devshell
Jun 16, 2026
Merged

feat(protocol): expose DynKeyExprFormatter for runtime format extension#207
YuanYuYuan merged 4 commits into
mainfrom
dev/remove-bridge-devshell

Conversation

@YuanYuYuan

@YuanYuYuan YuanYuYuan commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add DynKeyExprFormatter + KeyExprFormat::Custom so external crates can supply a custom wire format without forking hiroz
  • Deprecate ros-bridge-interop devshell and remove all stale hiroz-bridge / ros2dds references from docs, homepage, and cache script

Key Changes

  • DynKeyExprFormatter: object-safe &self companion to KeyExprFormatter, suitable for Arc<dyn ...> boxing
  • KeyExprFormat::Custom(Arc<dyn DynKeyExprFormatter>): new enum variant; drops Copy/PartialEq/Eq (Arc not Copy)
  • KeyExprFormatterAdapter<T>: zero-cost bridge from any static KeyExprFormatter impl into the dyn path
  • KeyExprFormat::liveliness_pattern(domain_id): replaces the unreachable!() match in Graph::new, Custom formats are picked up automatically
  • ros-bridge-interop devshell: marked deprecated with a warning shellHook
  • Docs: removed hiroz-bridge from quick-start table, homepage feature cards, feature-comparison table, and console backend docs

Breaking Changes

KeyExprFormat is no longer Copy. Callers that relied on implicit copies must add .clone().

@github-actions

github-actions Bot commented Jun 16, 2026

Copy link
Copy Markdown
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-06-16 05:51 UTC

The Humble+Jazzy interop test environment has moved to
zetta-hiroz-toolkit (private). Shell is kept with a deprecation
warning for backwards compatibility; will be removed in a future
release.
Add Custom variant to KeyExprFormat backed by an Arc<dyn DynKeyExprFormatter>,
an object-safe companion to KeyExprFormatter for external crates that need a
different wire format without a hiroz fork.

Also add KeyExprFormatterAdapter<T> to bridge any static KeyExprFormatter impl
into the dyn path with a single Arc::new() call.

Graph::new now derives its liveliness subscription pattern via
KeyExprFormat::liveliness_pattern() instead of an internal match, so Custom
formats get picked up automatically.
hiroz-bridge and ros2dds backend have moved to zetta-hiroz-toolkit.
Remove stale references from docs and cache population script.
@YuanYuYuan YuanYuYuan force-pushed the dev/remove-bridge-devshell branch from 2615726 to 56263cf Compare June 16, 2026 05:15
@YuanYuYuan YuanYuYuan merged commit b664957 into main Jun 16, 2026
28 checks passed
@YuanYuYuan YuanYuYuan deleted the dev/remove-bridge-devshell branch June 16, 2026 05: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