Compare commits

...

3 Commits

3 changed files with 12 additions and 8 deletions

View File

@ -1,8 +1,7 @@
[package] [package]
name = "linkspeed" name = "linkspeed"
version = "0.1.0" version = "0.1.0"
edition = "2024" edition = "2018"
rust-version = "1.85"
[dependencies] [dependencies]

View File

@ -1,2 +0,0 @@
[toolchain]
channel = "nightly"

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() { fn main() {
let netdev_name = env::args().nth(1).expect("No network device provided"); 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 { link_speed.for_each(|(rx_speed, tx_speed)| {
let (rx_speed, tx_speed) = link_speed.get_measurement();
println!( println!(
"RX: {:.0} MBit/s, TX: {:.0} MBit/s", "RX: {:.0} MBit/s, TX: {:.0} MBit/s",
rx_speed / 1024.0 / 1024.0 * 8.0, rx_speed / 1024.0 / 1024.0 * 8.0,
tx_speed / 1024.0 / 1024.0 * 8.0 tx_speed / 1024.0 / 1024.0 * 8.0
); );
sleep(Duration::from_millis(1000)); sleep(Duration::from_millis(1000));
} });
} }