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

wboayue / rust-ibapi / 25593695835
92%

Build:
DEFAULT BRANCH: main
Ran 09 May 2026 06:07AM 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

09 May 2026 06:06AM UTC coverage: 88.334% (-0.06%) from 88.398%
25593695835

push

github

web-flow
chore(scanner): drop text branches in scanner decoders (#532)

* chore(scanner): drop text branches in scanner decoders

`decode_scanner_data` and `decode_scanner_parameters` are now proto-only
via a `require_proto` helper that returns `Err(UnexpectedResponse)` on
text framing (skip-classifies per rule 20). Both originating gates
(`PROTOBUF_SCAN_DATA` = 210) sit at the connection floor, so the server
always emits proto framing for these messages. C# `EDecoder.cs` confirms
the dispatch is purely on the 4-byte msg-id framing — no
`if server_version >=` guards on the proto/text choice.

Inline `#[cfg(test)] mod tests` extracted to sibling `decoders_tests.rs`
per rules 13/14; added `*_rejects_text_framing` regression guards
mirroring the orders/ExecutionData precedent.

`ScannerParametersResponse` and `ScannerDataResponse` (+ `ScannerDataRow`)
builders added to `testdata/builders/scanner.rs`. Four inline raw-text
fixtures across `scanner/{sync,async}_tests.rs` swapped from
hand-rolled NUL-delimited strings → `proto_response(IncomingMessages::*,
builder.encode_proto())`.

Plan tracker updated; scanner row drops 3 text decoders + 2 dual-format
calls.

* chore(scanner): /simplify pass — lift require_proto, trim builder

- Lift `require_proto` to a `pub(crate)` method on `ResponseMessage`
  (`require_proto`). Removes the verbatim copy from
  `orders/common/decoders/mod.rs` and the new copy in
  `scanner/common/decoders.rs`. Both call sites become
  `decode_*_proto(message.require_proto()?)`. Avoids a 4-5x duplication
  across the remaining text-cleanup PRs (news, contracts, accounts,
  market_data).
- Tests: use `ResponseMessage::with_server_version()` builder instead of
  field mutation in `scanner/common/decoders_tests.rs`.
- Builder: drop `ScannerDataRow::new()` (only `pub fn new` across
  testdata builders — outlier) and the unused `security_type()` setter.
  The free function `scanner_data_row(...)` remains the single entry
  point and inlines the `Self ... (continued)

88 of 100 new or added lines in 6 files covered. (88.0%)

1 existing line in 1 file now uncovered.

18089 of 20478 relevant lines covered (88.33%)

30.47 hits per line

Uncovered Changes

Lines Coverage ∆ File
12
90.08
-9.92% src/testdata/builders/scanner.rs

Coverage Regressions

Lines Coverage ∆ File
1
77.74
-0.18% src/transport/sync/mod.rs
Jobs
ID Job ID Ran Files Coverage
1 25593695835.1 09 May 2026 06:07AM UTC 126
88.33
GitHub Action Run
Source Files on build 25593695835
  • Tree
  • List 126
  • Changed 7
  • Source Changed 6
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25593695835
  • 87acef34 on github
  • Prev Build on main (#25586409592)
  • Next Build on main (#25607200219)
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