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

UpdateHub / updatehub / 32295731778
66%

Build:
DEFAULT BRANCH: master
Ran 19 Aug 2026 08:00PM UTC
Jobs 1
Files 79
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

19 Aug 2026 07:55PM UTC coverage: 62.245% (-3.6%) from 65.885%
32295731778

push

github

otavio
refactor: replace async-trait with native async functions in traits

Rust stabilized async functions in traits in 1.75 and the MSRV is already 1.88,
so the macro carries its own weight for nothing. Removing it drops a proc-macro
from the build graph and the `Box<dyn Future>` that each of the 30 annotated
blocks allocated on every call, which the state machine paid on every
transition.

All but one of those blocks asked for `?Send`, and that is what a native async
function gives on its own. `CommunicationState` used the `Send` variant, but
nothing ever needed its future to be `Send`, so the bound goes away with no
other change.

Two things the expansion was hiding:

`StateChangeImpl::handle` now needs `where Self: Sized`. A native async function
makes a trait dyn-incompatible, and `State::inner_state` returns `&dyn
StateChangeImpl`. The bound keeps `handle` out of the vtable and costs nothing,
because `inner_state` only reaches `name`, `is_handling_download` and
`is_preemptive_state`.

`Download::handle` took `mut self` and never mutated it. The macro moved the
binding somewhere `unused_mut` could not see it.

async-trait stays in Cargo.lock as an indirect dependency of other crates.

0 of 1 new or added line in 1 file covered. (0.0%)

456 existing lines in 24 files now uncovered.

3261 of 5239 relevant lines covered (62.24%)

951.75 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
0.0
0.0% updatehub/src/states/download.rs

Coverage Regressions

Lines Coverage ∆ File
104
10.89
-11.56% updatehub/src/states/machine/mod.rs
72
0.0
0.0% updatehub/src/object/installer/copy.rs
53
0.0
0.0% updatehub/src/states/prepare_local_install.rs
35
0.0
0.0% updatehub/src/object/installer/tarball.rs
30
48.26
1.76% updatehub/src/states/mod.rs
23
0.0
0.0% updatehub/src/states/download.rs
22
75.0
-8.33% updatehub/src/states/validation.rs
21
48.31
-13.22% updatehub/src/object/installer/flash.rs
21
0.0
0.0% updatehub/src/object/installer/raw_delta.rs
17
78.5
-10.56% updatehub/src/states/probe.rs
16
43.06
-8.87% updatehub/src/object/installer/ubifs.rs
11
0.0
0.0% updatehub/src/states/direct_download.rs
5
0.0
0.0% updatehub/src/object/installer/mender.rs
5
0.0
0.0% updatehub/src/object/installer/zephyr.rs
4
94.76
-0.17% updatehub/src/object/installer/raw.rs
4
0.0
0.0% updatehub/src/states/error.rs
4
0.0
0.0% updatehub/src/states/park.rs
3
71.05
-0.77% updatehub/src/object/installer/mod.rs
1
95.95
0.95% updatehub/src/object/installer/imxkobs.rs
1
88.89
-11.11% updatehub/src/object/installer/test.rs
1
98.77
-1.23% updatehub/src/object/installer/uboot_env.rs
1
88.0
5.65% updatehub/src/states/entry_point.rs
1
87.76
2.76% updatehub/src/states/poll.rs
1
96.77
-3.23% updatehub/src/states/reboot.rs
Jobs
ID Job ID Ran Files Coverage
1 32295731778.1 19 Aug 2026 08:00PM UTC 79
62.24
GitHub Action Run
Source Files on build 32295731778
  • Tree
  • List 79
  • Changed 25
  • Source Changed 25
  • Coverage Changed 25
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32295731778
  • 196856d4 on github
  • Prev Build on master (#32293824559)
  • Next Build on master (#32296078407)
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