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

wboayue / rust-ibapi / 25328285566
92%

Build:
DEFAULT BRANCH: main
Ran 04 May 2026 03:39PM 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 03:38PM UTC coverage: 87.56% (+0.03%) from 87.529%
25328285566

push

github

web-flow
feat(subscriptions): async data_stream Stream adapter (PR 2c) (#505)

* feat(subscriptions): async data_stream Stream adapter (PR 2c)

Mirror sync iter_data() on the async side: returns
impl Stream<Item = Result<T, Error>> + Unpin + '_ so callers can
chain StreamExt combinators (next, take, collect, ...) without
pin_mut! boilerplate.

Implementation: Box::pin(futures::stream::unfold(self, |sub| sub.next_data().await...)).
The Unpin return costs one heap alloc per data_stream() call,
amortized over full stream consumption — better ergonomics than the
plan's impl Stream + '_.

Tests: data-only collection, terminal-error stream-end, notice filtering.

Refs todos/warning-message-routing.md PR 2c.

* refactor(subscriptions): tighten data_stream + dedup notice filter

Self-review fixes for PR 2c:

1. Drop `T: Send` bound on data_stream — not structurally required by
   next_data or Box::pin; was over-restricting non-Send T.

2. Add async stream() returning impl Stream<Item = Result<SubscriptionItem<T>,
   Error>> + Unpin + '_ — async mirror of sync iter() so notice-aware
   consumers get the same Stream ergonomics that data-only consumers got
   from data_stream().

3. Extract filter_notice() helper in common.rs; sync FilterData::next and
   async next_data both delegate. One source of truth for the filter +
   warn-log behavior.

4. Hoist `use futures::StreamExt;` to module-level test import.

* refactor(subscriptions): simplify per /simplify review

- Trim filter_notice doc to behavior-only; drop caller names that rot.
- Add direct unit test for filter_notice covering all three arms (the
  Notice arm wasn't reached by any other test — AsyncInternalSubscription
  filters RoutedItem::Notice via into_legacy() before user-facing next()).

* docs(plan): add maintenance instructions; mark PR 2c in flight

- "Maintaining this plan" section formalizes the in-flight / merged /
  divergence convention (so future PRs in this chain follow the same
  pattern PRs 1/2a/... (continued)

16998 of 19413 relevant lines covered (87.56%)

26.25 hits per line

Coverage Regressions

Lines Coverage ∆ File
9
64.56
0.58% src/subscriptions/sync.rs
4
96.65
1.2% src/subscriptions/async.rs
Jobs
ID Job ID Ran Files Coverage
1 25328285566.1 04 May 2026 03:39PM UTC 123
87.56
GitHub Action Run
Source Files on build 25328285566
  • Tree
  • List 123
  • Changed 3
  • Source Changed 3
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25328285566
  • 5074f679 on github
  • Prev Build on main (#25323850850)
  • Next Build on main (#25328474591)
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