From 716b91dd52ed2549d6618a01b52d08f808504bf2 Mon Sep 17 00:00:00 2001 From: ddidderr Date: Mon, 10 Feb 2025 17:36:08 +0100 Subject: [PATCH] code: impl Iterator for LinkSpeed and use it --- src/main.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index b010586..19bc9a8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -68,18 +68,25 @@ impl LinkSpeed { } } +impl Iterator for LinkSpeed { + type Item = (f64, f64); + + fn next(&mut self) -> Option { + 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)); - } + }); }