pub struct DownloadAcceleration { /* private fields */ }Expand description
Download acceleration in bytes per second squared
下载加速度(单位:字节每秒平方)
Implementations§
Source§impl DownloadAcceleration
impl DownloadAcceleration
Sourcepub fn from_raw(bytes_per_second_sq: i64) -> Self
pub fn from_raw(bytes_per_second_sq: i64) -> Self
Create a new download acceleration from raw bytes per second squared
§Parameters
bytes_per_second_sq: Non-zero acceleration in bytes per second squared
§Note
For negative acceleration, use as u64 conversion of i64 to ensure proper sign handling
从原始字节/秒²创建一个新的下载加速度实例
§参数
bytes_per_second_sq: 非零的字节/秒²加速度值
§注意
对于负加速度,使用 i64 的 as u64 转换,确保正确处理符号位
Sourcepub fn new(initial_speed: u64, final_speed: u64, duration: Duration) -> Self
pub fn new(initial_speed: u64, final_speed: u64, duration: Duration) -> Self
Create a new download acceleration from speed change and time interval
§Parameters
initial_speed: Initial speed in bytes per second (can be zero)final_speed: Final speed in bytes per second (can be zero)duration: Time interval for the speed change
从下载速度变化量和时间间隔创建一个新的下载加速度实例
§参数
initial_speed: 初始速度(字节/秒,可以为零)final_speed: 最终速度(字节/秒,可以为零)duration: 速度变化所用的时间
Sourcepub fn as_decimal(&self) -> Decimal
pub fn as_decimal(&self) -> Decimal
Get the acceleration in bytes per second squared as a Decimal
以 Decimal 的形式获取字节每秒平方
Sourcepub fn as_i64(&self) -> i64
pub fn as_i64(&self) -> i64
Get the acceleration in bytes per second squared as i64 (floored)
以 i64 的形式获取字节每秒平方(向下取整)
Sourcepub fn predict_eta(
&self,
current_speed: Decimal,
remaining_bytes: u64,
) -> Option<Decimal>
pub fn predict_eta( &self, current_speed: Decimal, remaining_bytes: u64, ) -> Option<Decimal>
Predicts the time remaining (in seconds) for a download to complete considering acceleration.
§Parameters
current_speed: Current download speed in bytes per second as Decimalremaining_bytes: Non-zero remaining bytes to download
§Returns
Some(Decimal): Estimated time remaining in secondsNone: If the time is infinite, or if the input is invalid (negative speed or overflow)
§Behavior
- Returns
Noneifcurrent_speedis negative or zero - Falls back to linear prediction if acceleration is negligible or arithmetic operations would overflow
- Handles edge cases gracefully without panicking
预测考虑加速度的下载剩余时间(秒)
§参数
current_speed: 当前下载速度(字节/秒),使用 Decimal 类型remaining_bytes: 剩余要下载的字节数(非零)
§返回
Some(Decimal): 估计的剩余时间(秒)None: 如果时间为无限大,或输入无效(速度为负或溢出)
§行为
- 如果
current_speed为负或零,返回None - 如果加速度可忽略或算术运算可能溢出,则回退到线性预测
- 优雅处理边界情况,不会导致程序崩溃
Trait Implementations§
Source§impl Clone for DownloadAcceleration
impl Clone for DownloadAcceleration
Source§fn clone(&self) -> DownloadAcceleration
fn clone(&self) -> DownloadAcceleration
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DownloadAcceleration
impl Debug for DownloadAcceleration
Source§impl FileSizeFormat for DownloadAcceleration
impl FileSizeFormat for DownloadAcceleration
Source§fn get_si_parts(&self) -> (String, &'static str)
fn get_si_parts(&self) -> (String, &'static str)
Returns the formatted value and unit in SI (base-1000) standard
返回 SI (base-1000) 标准的 (formatted_value, unit)
Source§fn get_iec_parts(&self) -> (String, &'static str)
fn get_iec_parts(&self) -> (String, &'static str)
Returns the formatted value and unit in IEC (base-1024) standard
返回 IEC (base-1024) 标准的 (formatted_value, unit)