use nmrs::{NetworkManager, TimeoutConfig, WifiSecurity};
use std::time::Duration;
#[tokio::main]
async fn main() -> nmrs::Result<()> {
let config = TimeoutConfig::new()
.with_connection_timeout(Duration::from_secs(60)) .with_disconnect_timeout(Duration::from_secs(20));
let nm = NetworkManager::with_config(config).await?;
println!("NetworkManager configured with custom timeouts:");
println!(
" Connection timeout: {:?}",
nm.timeout_config().connection_timeout
);
println!(
" Disconnect timeout: {:?}",
nm.timeout_config().disconnect_timeout
);
println!("\nConnecting to network...");
nm.connect(
"MyNetwork",
WifiSecurity::WpaPsk {
psk: std::env::var("WIFI_PASSWORD").unwrap_or_else(|_| "password".to_string()),
},
)
.await?;
println!("Connected successfully!");
let nm_default = NetworkManager::new().await?;
println!("\nDefault NetworkManager timeouts:");
println!(
" Connection timeout: {:?}",
nm_default.timeout_config().connection_timeout
);
println!(
" Disconnect timeout: {:?}",
nm_default.timeout_config().disconnect_timeout
);
Ok(())
}