1#[cfg(target_os = "linux")]
2mod linux;
3#[cfg(target_os = "macos")]
4mod osx;
5#[cfg(target_os = "windows")]
6mod windows;
7
8#[cfg(target_os = "linux")]
9pub use self::linux::{Connection, Linux as WiFi};
10#[cfg(target_os = "macos")]
11pub use self::osx::{Connection, Osx as WiFi};
12#[cfg(target_os = "windows")]
13pub use self::windows::{Connection, Windows as WiFi};
14
15use std::{fmt, io};
16
17#[derive(Debug, Clone)]
19pub struct Config<'a> {
20 pub interface: Option<&'a str>,
22}
23
24#[derive(Debug)]
25pub enum WifiError {
26 WifiDisabled,
28 #[cfg(target_os = "windows")]
30 InterfaceFailedToOn,
31 IoError(io::Error),
33}
34
35pub trait WifiInterface: fmt::Debug {
38 fn is_wifi_enabled() -> Result<bool, WifiError> {
40 unimplemented!();
41 }
42
43 fn turn_on() -> Result<(), WifiError> {
45 unimplemented!();
46 }
47
48 fn turn_off() -> Result<(), WifiError> {
50 unimplemented!();
51 }
52}