1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#[cfg(target_os = "windows")]
mod handlers;
mod providers;
#[cfg(target_os = "windows")]
mod stubs;
use crate::platforms::WifiError;
use std::{fmt, io};
pub trait Connectivity: fmt::Debug {
fn connect(&mut self, ssid: &str, password: &str) -> Result<bool, WifiConnectionError>;
fn disconnect(&self) -> Result<bool, WifiConnectionError>;
}
#[derive(Debug)]
pub enum WifiConnectionError {
#[cfg(target_os = "windows")]
AddNetworkProfileFailed,
FailedToConnect(String),
FailedToDisconnect(String),
Other { kind: WifiError },
}
impl From<io::Error> for WifiConnectionError {
fn from(error: io::Error) -> Self {
WifiConnectionError::Other {
kind: WifiError::IoError(error),
}
}
}