pub trait DeviceProxyInterface: Send + Sync {
type ProvisionNetworkResponseFut: Future<Output = Result<(), Error>> + Send;
type LeaveNetworkResponseFut: Future<Output = Result<(), Error>> + Send;
type SetActiveResponseFut: Future<Output = Result<(), Error>> + Send;
type GetSupportedNetworkTypesResponseFut: Future<Output = Result<Vec<String>, Error>> + Send;
type WatchDeviceStateResponseFut: Future<Output = Result<DeviceState, Error>> + Send;
// Required methods
fn provision_network(
&self,
params: &ProvisioningParams,
) -> Self::ProvisionNetworkResponseFut;
fn leave_network(&self) -> Self::LeaveNetworkResponseFut;
fn set_active(&self, active: bool) -> Self::SetActiveResponseFut;
fn get_supported_network_types(
&self,
) -> Self::GetSupportedNetworkTypesResponseFut;
fn watch_device_state(&self) -> Self::WatchDeviceStateResponseFut;
}