• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

wboayue / rust-ibapi / 25302170727
92%

Build:
DEFAULT BRANCH: main
Ran 04 May 2026 05:10AM UTC
Jobs 1
Files 123
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

04 May 2026 05:09AM UTC coverage: 87.645% (-0.2%) from 87.87%
25302170727

push

github

web-flow
refactor(transport): typed RoutedItem channel envelope (PR 2a) (#503)

* refactor(transport): typed RoutedItem channel envelope (PR 2a)

Replace the raw `Result<ResponseMessage, Error>` (sync) / `ResponseMessage`
(async) channel item with a typed `RoutedItem = Response | Notice | Error`.
Sets the foundation for the warning-routing feature without changing public
APIs or dispatcher classification yet.

- `RoutedItem` lives in `subscriptions::common`; `Notice` arm reachable from
  PR 3 onward (defined but unused here).
- Sync `TcpMessageBus` and async `AsyncTcpMessageBus` channels now carry
  `RoutedItem`. Cancellation/shutdown/reset paths emit typed `Error` variants
  instead of magic-string `ResponseMessage::from("Cancelled")` etc.
- `InternalSubscription::next` keeps the legacy `Option<Result<ResponseMessage,
  Error>>` shape via a `routed_to_legacy` shim (Notice -> loop and recv next).
  Domain consumers remain unchanged.
- `Error: Clone` (manual; Io preserves kind+message) so `RoutedItem` can be
  Clone (required by `tokio::sync::broadcast`). `HistoricalParseError` gains
  `Clone` derive.

Decoder `IncomingMessages::Error` arms left intact; dispatcher classification
deferred to PR 3.

Refs warning-message-routing roadmap (PR 2a).

* docs: mark PR 2a as open

* test(subscriptions): async RoutedItem coverage + Error::Clone caveat

- Add `test_routed_item_error_surfaces_through_async_subscription` and
  `test_routed_item_notice_skipped_then_response_delivered` mirroring the
  sync-side error test and locking the Notice → skip contract before PR 3
  starts emitting notices.
- Document Error::Clone lossiness for `ParseTime` (collapses to Simple,
  loses variant identity).

* refactor(routed-item): From impls + into_legacy method

- `From<ResponseMessage> for RoutedItem` and `From<Error> for RoutedItem`
  so send sites read `sender.send(msg.into())` / `sender.send(err.into())`
  instead of spelling out the variant.
- `RoutedItem::into_legacy()` replaces ... (continued)

58 of 103 new or added lines in 6 files covered. (56.31%)

16961 of 19352 relevant lines covered (87.64%)

26.28 hits per line

Uncovered Changes

Lines Coverage ∆ File
21
75.0
-15.53% src/errors.rs
13
49.31
1.75% src/transport/async.rs
6
74.95
0.2% src/transport/sync/mod.rs
5
88.52
-2.7% src/transport/mod.rs
Jobs
ID Job ID Ran Files Coverage
1 25302170727.1 04 May 2026 05:10AM UTC 123
87.64
GitHub Action Run
Source Files on build 25302170727
  • Tree
  • List 123
  • Changed 9
  • Source Changed 9
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25302170727
  • 7bc104a2 on github
  • Prev Build on main (#25299388133)
  • Next Build on main (#25302199183)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc