Skip to main content

lingxia_platform/traits/
network.rs

1use crate::error::PlatformError;
2
3pub trait Network: Send + Sync + 'static {
4    /// Get current network info via callback.
5    ///
6    /// Callback payload example:
7    /// `{ "isConnected": true, "networkType": "wifi", "ipv4": ["192.168.1.12"], "ipv6": ["240e:3a1:..."] }`
8    fn get_network_info(&self, callback_id: u64) -> Result<(), PlatformError> {
9        let _ = callback_id;
10        Err(PlatformError::Platform(
11            "get_network_info not implemented".to_string(),
12        ))
13    }
14
15    /// Add listener for network changes.
16    ///
17    /// Platform should push callback payload:
18    /// `{ "isConnected": boolean, "networkType": "none|unknown|wifi|2g|3g|4g|5g|ethernet", "ipv4": string[], "ipv6": string[] }`
19    fn add_network_change_listener(&self, callback_id: u64) -> Result<(), PlatformError> {
20        let _ = callback_id;
21        Err(PlatformError::Platform(
22            "add_network_change_listener not implemented".to_string(),
23        ))
24    }
25
26    /// Remove a previously registered network change listener.
27    fn remove_network_change_listener(&self, callback_id: u64) -> Result<(), PlatformError> {
28        let _ = callback_id;
29        Err(PlatformError::Platform(
30            "remove_network_change_listener not implemented".to_string(),
31        ))
32    }
33}