mirror of
https://github.com/crunchy-labs/crunchy-cli.git
synced 2026-01-21 20:22:01 -06:00
28 lines
864 B
Rust
28 lines
864 B
Rust
use crate::utils::parse::parse_resolution;
|
|
use crunchyroll_rs::media::Resolution;
|
|
use reqwest::Proxy;
|
|
|
|
pub fn clap_parse_resolution(s: &str) -> Result<Resolution, String> {
|
|
parse_resolution(s.to_string()).map_err(|e| e.to_string())
|
|
}
|
|
|
|
pub fn clap_parse_proxy(s: &str) -> Result<Proxy, String> {
|
|
Proxy::all(s).map_err(|e| e.to_string())
|
|
}
|
|
|
|
pub fn clap_parse_speed_limit(s: &str) -> Result<u32, String> {
|
|
let quota = s.to_lowercase();
|
|
|
|
let bytes = if let Ok(b) = quota.parse() {
|
|
b
|
|
} else if let Ok(b) = quota.trim_end_matches('b').parse::<u32>() {
|
|
b
|
|
} else if let Ok(kb) = quota.trim_end_matches("kb").parse::<u32>() {
|
|
kb * 1024
|
|
} else if let Ok(mb) = quota.trim_end_matches("mb").parse::<u32>() {
|
|
mb * 1024 * 1024
|
|
} else {
|
|
return Err("Invalid speed limit".to_string());
|
|
};
|
|
Ok(bytes)
|
|
}
|