pub struct BandwidthMetrics {
pub bytes_transferred: Bytes,
pub total_time_ms: f64,
pub transfer_count: u64,
pub avg_bps: f64,
pub peak_bps: f64,
}Expand description
Bandwidth performance metrics.
§Examples
use chie_shared::BandwidthMetrics;
// Track bandwidth for 10 chunk transfers (1 GB total)
let metrics = BandwidthMetrics::new(
1024 * 1024 * 1024, // 1 GB
1000.0, // 1 second
10, // 10 transfers
2_000_000.0, // 2 MB/s peak
);
// Check average speeds
assert!(metrics.avg_mbps() > 1000.0);
assert_eq!(metrics.peak_mbps(), 16.0);
// Calculate efficiency
let avg_chunk_size = metrics.avg_bytes_per_transfer();
assert!(avg_chunk_size > 0.0);Fields§
§bytes_transferred: BytesTotal bytes transferred.
total_time_ms: f64Total transfer time in milliseconds.
transfer_count: u64Number of transfers.
avg_bps: f64Average bytes per second.
peak_bps: f64Peak bytes per second.
Implementations§
Source§impl BandwidthMetrics
impl BandwidthMetrics
Sourcepub fn new(
bytes_transferred: Bytes,
total_time_ms: f64,
transfer_count: u64,
peak_bps: f64,
) -> Self
pub fn new( bytes_transferred: Bytes, total_time_ms: f64, transfer_count: u64, peak_bps: f64, ) -> Self
Create new bandwidth metrics.
Sourcepub fn avg_transfer_time_ms(&self) -> f64
pub fn avg_transfer_time_ms(&self) -> f64
Get average transfer time in milliseconds.
Sourcepub fn avg_bytes_per_transfer(&self) -> f64
pub fn avg_bytes_per_transfer(&self) -> f64
Get average bytes per transfer.
Trait Implementations§
Source§impl Clone for BandwidthMetrics
impl Clone for BandwidthMetrics
Source§fn clone(&self) -> BandwidthMetrics
fn clone(&self) -> BandwidthMetrics
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for BandwidthMetrics
impl Debug for BandwidthMetrics
Source§impl Default for BandwidthMetrics
impl Default for BandwidthMetrics
Source§impl<'de> Deserialize<'de> for BandwidthMetrics
impl<'de> Deserialize<'de> for BandwidthMetrics
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for BandwidthMetrics
impl RefUnwindSafe for BandwidthMetrics
impl Send for BandwidthMetrics
impl Sync for BandwidthMetrics
impl Unpin for BandwidthMetrics
impl UnwindSafe for BandwidthMetrics
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more