scrap/benchmark: give the Duration divisor an explicit u32

The webrtc feature pulls time 0.3 into scrap's graph (hbb_common ->
webrtc -> webrtc-dtls -> der-parser -> asn1-rs), and that crate carries
an `impl Div<time::Duration> for std::time::Duration`. Orphan rules
allow it because the RHS is its own type, and trait impls are visible
across the whole dependency graph without a use, so std::time::Duration
now has two Div candidates. `yuv_count as _` casts to a plain inference
variable, which both candidates fit, so it stops resolving:

  error[E0282]: type annotations needed
    --> libs/scrap/examples/benchmark.rs:146:33

Only two of the four sites are reported - rustc emits one E0282 per
function body - so all four are annotated. The already-explicit
`as u32` at the hwcodec site and `start.elapsed() / cnt` are unaffected,
the latter because an integer literal's variable can only unify with an
integral type and rules the time impl out on its own.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
rustdesk
2026-08-08 18:55:09 +08:00
parent 7fe4d186e5
commit ea7407b73b

View File

@@ -143,7 +143,7 @@ fn test_vpx(
println!( println!(
"{:?} encode: {:?}, {} byte", "{:?} encode: {:?}, {} byte",
codec_id, codec_id,
time_sum / yuv_count as _, time_sum / yuv_count as u32,
size / yuv_count size / yuv_count
); );
@@ -156,7 +156,7 @@ fn test_vpx(
println!( println!(
"{:?} decode: {:?}", "{:?} decode: {:?}",
codec_id, codec_id,
start.elapsed() / yuv_count as _ start.elapsed() / yuv_count as u32
); );
} }
@@ -212,7 +212,7 @@ fn test_av1(
assert_eq!(av1s.len(), yuv_count); assert_eq!(av1s.len(), yuv_count);
println!( println!(
"AV1 encode: {:?}, {} byte", "AV1 encode: {:?}, {} byte",
time_sum / yuv_count as _, time_sum / yuv_count as u32,
size / yuv_count size / yuv_count
); );
let mut decoder = AomDecoder::new().unwrap(); let mut decoder = AomDecoder::new().unwrap();
@@ -221,7 +221,7 @@ fn test_av1(
let _ = decoder.decode(&av1); let _ = decoder.decode(&av1);
let _ = decoder.flush(); let _ = decoder.flush();
} }
println!("AV1 decode: {:?}", start.elapsed() / yuv_count as _); println!("AV1 decode: {:?}", start.elapsed() / yuv_count as u32);
} }
#[cfg(feature = "hwcodec")] #[cfg(feature = "hwcodec")]