axbuild 0.4.17

An OS build lib toolkit used by arceos
Documentation
use std::time::Duration;

use chrono::Local;

pub(super) fn print_clippy_timing(elapsed: Duration) {
    let finished_at = Local::now();
    println!(
        "clippy finished at: {}",
        finished_at.format("%Y-%m-%d %H:%M:%S %z")
    );
    println!("clippy elapsed: {}", format_elapsed(elapsed));
}

pub(super) fn format_elapsed(elapsed: Duration) -> String {
    let secs = elapsed.as_secs();
    let millis = elapsed.subsec_millis();
    if secs == 0 {
        return format!("{}ms", millis);
    }

    let hours = secs / 3600;
    let minutes = (secs % 3600) / 60;
    let seconds = secs % 60;
    if hours > 0 {
        format!("{}h {}m {}s", hours, minutes, seconds)
    } else if minutes > 0 {
        format!("{}m {}s", minutes, seconds)
    } else {
        format!("{}s", seconds)
    }
}