fast_down_cli/
lib.rs

1use color_eyre::eyre::{eyre, Result};
2use reqwest::header::{HeaderMap, HeaderName, HeaderValue};
3use std::str::FromStr;
4
5pub fn build_headers(headers: &[String]) -> Result<HeaderMap> {
6    let mut header_map = HeaderMap::with_capacity(headers.len());
7    for header in headers {
8        let parts: Vec<&str> = header.splitn(2, ':').map(|t| t.trim()).collect();
9        if parts.len() != 2 {
10            return Err(eyre!("Header格式应为 'Key: Value'"));
11        }
12        let key = parts[0];
13        let value = parts[1];
14        header_map.insert(HeaderName::from_str(key)?, HeaderValue::from_str(value)?);
15    }
16    Ok(header_map)
17}
18
19pub fn format_time(time: u64) -> String {
20    let seconds = time % 60;
21    let minutes = (time / 60) % 60;
22    let hours = time / 3600;
23    format!("{:02}:{:02}:{:02}", hours, minutes, seconds)
24}