passcod_networkmanager/
lib.rs

1//! A [NetworkManager](https://wiki.gnome.org/Projects/NetworkManager) API library using the [D-Bus message bus system](https://www.freedesktop.org/wiki/Software/dbus/)
2//!
3//! ## Usage
4//!
5//! ```toml
6//! [dependencies]
7//! networkmanager = { package = "passcod-networkmanager", version = "0.5.0" }
8//! ```
9//!
10//! ## Example
11//!
12//! ```rust,no_run
13//! # use passcod_networkmanager as networkmanager;
14//! use networkmanager::devices::{Any, Device, Wired, Wireless};
15//! use networkmanager::{Error, NetworkManager};
16//!
17//! fn main() -> Result<(), Error> {
18//!     let nm = NetworkManager::new()?;
19//!
20//!     for dev in nm.get_devices()? {
21//!         match dev {
22//!             Device::Ethernet(x) => {
23//!                 println!("Is autoconnected: {:?}", x.autoconnect()?);
24//!                 println!("Speed: {:?}", x.speed()?);
25//!                 println!("S390 Subchannels: {:?}", x.s390_subchannels()?);
26//!                 println!("Carrier: {:?}", x.carrier()?);
27//!             }
28//!             Device::WiFi(x) => {
29//!                 println!("Bitrate: {:?}", x.bitrate()?);
30//!                 x.request_scan(std::collections::HashMap::new())?;
31//!                 for ap in x.get_all_access_points()? {
32//!                     println!("SSID: {:?}", ap.ssid()?);
33//!                 }
34//!             }
35//!             _ => {}
36//!         }
37//!     }
38//!
39//!     let eth0 = nm.get_device_by_ip_iface("eth0")?;
40//!     match eth0 {
41//!         Device::Ethernet(x) => {
42//!             // NetworkManager >= 1.24
43//!             // println!("Hardware Address: {:?}", Any::hw_address(&x)?);
44//!
45//!             // NetworkManager < 1.24
46//!             // println!("Hardware Address: {:?}", Wired::hw_address(&x)?);
47//!
48//!             println!("Speed: {:?}", x.speed()?);
49//!         }
50//!         _ => {}
51//!     }
52//!
53//!     Ok(())
54//! }
55//! ```
56
57#![deny(rust_2018_idioms)]
58
59mod gen;
60#[macro_use]
61mod dbus_api;
62mod accesspoint;
63mod errors;
64mod networkmanager;
65mod settings;
66
67pub mod configs;
68pub mod connection;
69pub mod devices;
70pub mod types;
71
72pub use crate::accesspoint::AccessPoint;
73pub use crate::errors::Error;
74pub use crate::networkmanager::NetworkManager;
75pub use crate::settings::Settings;