rust-lang/rust-clippy

Manual Duration::{as_nanos,as_milis,as_secs_f64,as_secs_f32} implementation

開放

#6,068 建立於 2020年9月20日

 (4 則留言) (0 個反應) (1 位負責人)Rust (1,391 個分叉)batch import
C-enhancementgood first issue

倉庫指標

星標
 (10,406 顆星)
PR 合併指標
 (平均合併 19天 22小時) (30 天內合併 113 個 PR)

描述

What it does

Recognize cases of manual re-implementation of the builtin as_nanos and as_secs_f64 and as_secs_f32 functions on Duration.

Categories

  • Kind: complexity, sometimes also correctness

Drawbacks

MSRV issues, implementing the suggestion might increase the MSRV.

Example

let nanos = diff.as_secs() * 1_000_000_000 + diff.subsec_nanos() as u64;
let milis = diff.as_secs() * 1_000 + diff.subsec_milis() as u64;
let secs_f64 = (diff.as_secs() as f64 * 1_000.0 + diff.subsec_milis() as f64) / 1000.0;
let secs_f64 = diff.as_secs() as f64 + diff.subsec_milis() as f64 / 1_000.0;
let secs_f64 = diff.as_secs() as f64 + diff.subsec_nanos() as f64 / 1_000_000_000.0;

Could be written as:

let nanos = diff.as_nanos() as u64;
let milis = diff.as_millis() as u64;
let secs_f64 = diff.as_secs_f64();
let secs_f64 = diff.as_secs_f64();
let secs_f64 = diff.as_secs_f64();

貢獻者指南