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

wboayue / rust-ibapi / 25584119549
92%

Build:
DEFAULT BRANCH: main
Ran 08 May 2026 11:15PM UTC
Jobs 1
Files 126
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

08 May 2026 11:14PM UTC coverage: 88.392% (+0.02%) from 88.374%
25584119549

push

github

web-flow
chore(orders): drop text branches in ExecutionData/CommissionReport decoders (#529)

* chore(orders): drop text branches in ExecutionData / CommissionReport decoders

Both originating outgoing-request gates fit at floor 203:
- `RequestExecutions` (gate 201, `PROTOBUF`)
- `PlaceOrder` (gate 203, `PROTOBUF_PLACE_ORDER`)

So the server always emits these as proto and the text branch is
unreachable. C# `EDecoder.cs` confirms the dispatch is purely on the
4-byte msg-id framing, not server version — no `if server_version >=`
guards on the proto/text choice.

Decoders now match-bind `raw_bytes()` and call the existing proto
decoder; `Error::Parse` surfaces the impossible-text-framing case so
silent mis-decode bugs blow up loudly.

Stub plumbing: `MessageBusStub` gains `ordered_responses: Vec<ResponseMessage>`
(plus a `with_ordered_responses` constructor) so tests can interleave
text-framed dual-format responses with proto-framed proto-only ones —
needed for `place_order` which mixes `OpenOrder` (still dual-format) with
`ExecutionData` (now proto-only). Helpers `text_response()` /
`proto_response()` in `common::test_utils::helpers`.

Tests deleted: two text-fixture tests for `decode_execution_data` (text
branch is gone, builder→encode→decode→assert exercises no production
code per rule 15). Replaced with regression guards that confirm
text-framed input is rejected with `Error::Parse`.

Tracker `plans/legacy-text-protocol-cleanup.md` updated; orders row
drops 2 text decoders and 2 dual-format calls. Next ratchet (floor 204)
unlocks `decode_open_order` / `decode_order_status` /
`decode_completed_order`.

* chore(orders): use UnexpectedResponse for proto-only decoder framing-rejection

Skip-classify rather than terminate the subscription: per CLAUDE.md rule 20,
`process_decode_result` only treats `Error::UnexpectedResponse` as
recoverable; `Error::Parse` (the prior choice) terminates the entire
subscription on any malformed message — exactly the bug class rule 2... (continued)

32 of 33 new or added lines in 5 files covered. (96.97%)

18123 of 20503 relevant lines covered (88.39%)

28.79 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
88.12
0.21% src/common/test_utils.rs
Jobs
ID Job ID Ran Files Coverage
1 25584119549.1 08 May 2026 11:15PM UTC 126
88.39
GitHub Action Run
Source Files on build 25584119549
  • Tree
  • List 126
  • Changed 6
  • Source Changed 5
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25584119549
  • 84c4153b on github
  • Prev Build on main (#25582643613)
  • Next Build on main (#25584325554)
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