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

wboayue / rust-ibapi / 25262146683
92%

Build:
DEFAULT BRANCH: main
Ran 02 May 2026 09:20PM UTC
Jobs 1
Files 114
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

02 May 2026 09:19PM UTC coverage: 88.405% (+0.001%) from 88.404%
25262146683

push

github

web-flow
feat: TickSubscription::cancel() + un-ignore cancel integration tests (#410) (#485)

* feat: add cancel() + Drop to TickSubscription; un-ignore cancel integration tests

TickSubscription<T> (sync + async, returned from Client::historical_ticks_*)
now exposes cancel() and auto-cancels on drop when the batch hasn't
completed. Users no longer have to track request IDs by hand to abort a
historical-ticks request.

- Sync: pub fn cancel(); Drop fires only if !done
- Async: pub async fn cancel(); Drop spawns the cancel via tokio::spawn,
  mirroring HistoricalDataStreamingSubscription
- Idempotent in both: AtomicBool guards a duplicate cancel
- 3 unit tests per side (sends_cancel_on_drop, explicit_cancel_prevents_
  duplicate_on_drop, drop_after_done_does_not_cancel) using MessageBusStub

Also drops the now-stale #[ignore = "requires server version >= 215"] on
four integration tests (cancel_contract_details + cancel_historical_ticks,
sync + async). Client max negotiated version is now 221.

Closes #410

* fix(integration-test): match current async realtime_bars signature

Pre-existing arity drift since #453: async realtime_bars takes
(&contract, &BarSize, &WhatToShow, TradingHours, Vec<TagValue>) but the
integration test still called the old 4-arg form. Compile-only fix for
the #410 PR.

Note: sync realtime_bars takes (&contract, BarSize, WhatToShow, TradingHours)
(no options Vec, no references). The sync/async signatures are out of
sync; aligning them is out of scope for this PR.

* refactor(historical): flatten nested mod.rs+tests.rs to sibling files

Per CLAUDE.md test-file convention: prefer flat foo.rs + foo_tests.rs
over foo/mod.rs + foo/tests.rs. Pure rename (git mv) plus the
#[path = "..._tests.rs"] attribute on the mod tests; declaration.

* docs(TickSubscription): note Drop auto-cancels unfinished subscriptions

* refactor(test): extract count_proto_msgs helper, drop 3 inline +200 filters

64 of 71 new or added lines in 3 files covered. (90.14%)

17139 of 19387 relevant lines covered (88.4%)

24.3 hits per line

Uncovered Changes

Lines Coverage ∆ File
5
80.29
src/market_data/historical/async.rs
2
77.31
src/market_data/historical/sync.rs
Jobs
ID Job ID Ran Files Coverage
1 25262146683.1 02 May 2026 09:20PM UTC 114
88.4
GitHub Action Run
Source Files on build 25262146683
  • Tree
  • List 114
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25262146683
  • 4088c7ae on github
  • Prev Build on main (#25260795792)
  • Next Build on main (#25264080377)
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