pub struct DownloadAcceleration { /* private fields */ }Expand description
Download acceleration in bytes per second squared (fixed-point representation)
Internally stores bytes_per_second_sq * SCALE for precision.
Supports negative values for deceleration.
下载加速度(单位:字节每秒平方,定点数表示)
内部存储 bytes_per_second_sq * SCALE 以保持精度。
支持负值表示减速。
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
Uses pure integer arithmetic with nanosecond precision.
§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_scaled(&self) -> i128
pub fn as_scaled(&self) -> i128
Get the internal scaled value (for advanced usage)
获取内部缩放值(高级用途)
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 as_f64(&self) -> f64
pub fn as_f64(&self) -> f64
Get the acceleration as f64 (for compatibility)
以 f64 的形式获取加速度(兼容用途)
Sourcepub fn predict_eta(
&self,
current_speed: u64,
remaining_bytes: u64,
) -> Option<f64>
pub fn predict_eta( &self, current_speed: u64, remaining_bytes: u64, ) -> Option<f64>
Predicts the time remaining (in seconds) for a download to complete considering acceleration.
§Parameters
current_speed: Current download speed in bytes per secondremaining_bytes: Non-zero remaining bytes to download
§Returns
Some(f64): Estimated time remaining in secondsNone: If the time is infinite, or if the input is invalid
§Behavior
- Returns
Noneifcurrent_speedis zero - Falls back to linear prediction if acceleration is negligible
- Handles edge cases gracefully without panicking
预测考虑加速度的下载剩余时间(秒)
§参数
current_speed: 当前下载速度(字节/秒)remaining_bytes: 剩余要下载的字节数(非零)
§返回
Some(f64): 估计的剩余时间(秒)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)