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)); - } + }); }