use std::pin::Pin;
use futures::Stream;
use zvariant::OwnedObjectPath;
pub type NetworkEventStream =
Pin<Box<dyn Stream<Item = crate::Result<NetworkEvent>> + Send + 'static>>;
pub type SettingsEventStream =
Pin<Box<dyn Stream<Item = crate::Result<SettingsChange>> + Send + 'static>>;
#[non_exhaustive]
#[derive(Debug, Clone)]
pub enum NetworkEvent {
AccessPointsChanged,
DeviceChanged {
interface: Option<String>,
},
ActiveConnectionsChanged,
WirelessEnabledChanged,
SettingsChanged(SettingsChange),
ConnectivityChanged,
NetworkManagerRestarted,
}
#[non_exhaustive]
#[derive(Debug, Clone)]
pub enum SettingsChange {
Added {
path: OwnedObjectPath,
},
Removed {
path: OwnedObjectPath,
},
Updated {
path: OwnedObjectPath,
},
Reloaded,
Unknown,
}