[code] impl Iterator for LinkSpeed and use it

This commit is contained in:
ddidderr 2025-02-10 17:36:08 +01:00
parent 2639919f84
commit 363ae4729e
Signed by: ddidderr
GPG Key ID: 3841F1C27E6F0E14

View File

@ -68,18 +68,25 @@ impl LinkSpeed {
}
}
impl Iterator for LinkSpeed {
type Item = (f64, f64);
fn next(&mut self) -> Option<Self::Item> {
Some(self.get_measurement())
}
}
fn main() {
let netdev_name = env::args().nth(1).expect("No network device provided");
let mut link_speed = LinkSpeed::new(netdev_name).expect("Failed to create LinkSpeed object");
let link_speed = LinkSpeed::new(netdev_name).expect("Failed to create LinkSpeed object");
loop {
let (rx_speed, tx_speed) = link_speed.get_measurement();
link_speed.for_each(|(rx_speed, tx_speed)| {
println!(
"RX: {:.0} MBit/s, TX: {:.0} MBit/s",
rx_speed / 1024.0 / 1024.0 * 8.0,
tx_speed / 1024.0 / 1024.0 * 8.0
);
sleep(Duration::from_millis(1000));
}
});
}