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

wboayue / rust-ibapi / 25246327040
93%

Build:
DEFAULT BRANCH: main
Ran 02 May 2026 06:59AM 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 06:58AM UTC coverage: 89.826% (-0.008%) from 89.834%
25246327040

push

github

web-flow
refactor(async-transport): generic AsyncConnection / AsyncTcpMessageBus (PR 2c-prep) (#476)

* refactor(async-transport): generic AsyncConnection / AsyncTcpMessageBus

Unblock PR 2c (async routing tests) by parameterizing AsyncConnection and
AsyncTcpMessageBus over a frame-level AsyncStream trait. Mirrors the sync
side's Connection<S: Stream> / TcpMessageBus<S: Stream> pattern.

Adds:
- src/transport/async_io.rs: AsyncIo, AsyncReconnect, AsyncStream traits
  (#[async_trait]) plus AsyncTcpSocket — the production wiring that holds
  Mutex<OwnedReadHalf>/<OwnedWriteHalf> and implements the new traits.
  Frame-level read_message / write_all so AsyncConnection no longer does
  byte-level read_exact for the length prefix.

Refactors:
- AsyncConnection<S: AsyncStream = AsyncTcpSocket>: socket: S replaces
  the prior reader/writer/connection_url/options fields; URL + tcp_no_delay
  move into AsyncTcpSocket where reconnect needs them; options is dropped
  (startup_callback was the only stored bit, now passed once to
  establish_connection). Adds pub(crate) stubbed(socket, client_id) for
  tests, mirroring sync's Connection::stubbed.
- AsyncTcpMessageBus<S: AsyncStream = AsyncTcpSocket>: connection field
  becomes Arc<AsyncConnection<S>>. AsyncMessageBus impl is generic over S;
  trait-object coercion to Arc<dyn AsyncMessageBus> still works for the
  Client.
- MemoryStream (transport/async_memory.rs): rewritten frame-level. Drops
  the byte-level AsyncRead/AsyncWrite + waker design from PR 1 (no longer
  needed once the trait abstraction handles framing internally). Now uses
  tokio Mutex + Notify with the standard arm-before-check Notify pattern
  to avoid lost wakeups. Implements AsyncIo / AsyncReconnect / AsyncStream.

Verified:
- AsyncConnection<MemoryStream> constructs (smoke test in
  connection/async_tests.rs).
- All clippy configs (default, sync, all-features) clean.
- cargo test --lib (912/913), --features sync (1135/1136),
  --all-features (1136/1137)... (continued)

40 of 51 new or added lines in 4 files covered. (78.43%)

6 existing lines in 3 files now uncovered.

17950 of 19983 relevant lines covered (89.83%)

39.94 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
78.95
src/transport/async_io.rs
4
71.43
-16.07% src/transport/async_memory.rs
3
78.13
1.05% src/connection/async.rs

Coverage Regressions

Lines Coverage ∆ File
2
78.13
1.05% src/connection/async.rs
2
71.43
-16.07% src/transport/async_memory.rs
2
94.12
-5.88% src/transport/sync/memory.rs
Jobs
ID Job ID Ran Files Coverage
1 25246327040.1 02 May 2026 06:59AM UTC 114
89.83
GitHub Action Run
Source Files on build 25246327040
  • Tree
  • List 114
  • Changed 4
  • Source Changed 3
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25246327040
  • 0cf68c1b on github
  • Prev Build on main (#25245454759)
  • Next Build on main (#25246669493)
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