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

wboayue / rust-ibapi / 25607650839
92%

Build:
DEFAULT BRANCH: main
Ran 09 May 2026 05:46PM 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 05:45PM UTC coverage: 88.78% (+0.2%) from 88.534%
25607650839

push

github

web-flow
chore(contracts): drop text branches in 4 contract decoders (#534)

* chore(contracts): drop text branches in 4 contract decoders

`decode_contract_details`, `decode_contract_descriptions`,
`decode_market_rule`, and `decode_option_chain` are now proto-only via
`ResponseMessage::require_proto` — text framing skip-classifies via
`Error::UnexpectedResponse` (rule 20). All originating
outgoing-request gates (`PROTOBUF_CONTRACT_DATA` = 205) sit at or below
the connection floor of 210 (`PROTOBUF_SCAN_DATA`), so the server always
emits these in proto framing. C# `EDecoder.cs` confirms the dispatch is
purely on the 4-byte msg-id framing — no `if server_version >=` guards.

Deleted `decode_contract_details_text` (~130 lines) plus the helpers it
relied on (`split_hours`, `split_to_vec`, `read_last_trade_date`) — no
other callers. `decode_option_computation` stays text-framed: it's
shared with `market_data/realtime` (gate 206) and gets dropped in that
family's cleanup PR.

Tests: 7 text-decode unit tests + 3 helper tests deleted from
`decoders/tests.rs`; 4 `*_rejects_text_framing` regression guards added.

Builders: added `ContractDataResponse`, `SymbolSamplesResponse` (+
`SymbolSamplesEntry`), `MarketRuleResponse`, `OptionChainResponse` to
`testdata/builders/contracts.rs`. The `ContractData` builder mirrors the
deeply-nested `proto::Contract` + `proto::ContractDetails` shape with
fluent setters for the fields exercised by tests.

Test fixture migration: renamed `response_messages: Vec<String>` →
`ordered_responses: Vec<ResponseMessage>` on `ContractDetailsTestCase`,
`MatchingSymbolsTestCase`, `MarketRuleTestCase`, `OptionChainTestCase`,
`StreamDecoderTestCase`, `ContractDetailsErrorTestCase`. All
ContractData / SymbolSamples / MarketRule /
SecurityDefinitionOptionParameter fixtures rebuilt via proto builders.
3 inline raw-text fixtures in `contracts/async/tests.rs` (request_stock
/ future / bond_contract_details) converted to proto. End markers (msg
52 / msg 76... (continued)

536 of 536 new or added lines in 3 files covered. (100.0%)

18429 of 20758 relevant lines covered (88.78%)

25.68 hits per line

Jobs
ID Job ID Ran Files Coverage
1 25607650839.1 09 May 2026 05:46PM UTC 126
88.78
GitHub Action Run
Source Files on build 25607650839
  • Tree
  • List 126
  • Changed 4
  • Source Changed 3
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25607650839
  • 478f8d27 on github
  • Prev Build on main (#25607200219)
  • Next Build on main (#25607781709)
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