pub trait DeviceProxyInterface: Send + Sync {
type GetHardwareIdResponseFut: Future<Output = Result<DeviceGetHardwareIdResult, Error>> + Send;
type GetRwFirmwareVersionResponseFut: Future<Output = Result<DeviceGetRwFirmwareVersionResult, Error>> + Send;
type GetRoFirmwareVersionResponseFut: Future<Output = Result<DeviceGetRoFirmwareVersionResult, Error>> + Send;
type GetNvramMetadataLocationResponseFut: Future<Output = Result<DeviceGetNvramMetadataLocationResult, Error>> + Send;
type GetFlashmapAddressResponseFut: Future<Output = Result<DeviceGetFlashmapAddressResult, Error>> + Send;
type GetNvdataVersionResponseFut: Future<Output = Result<DeviceGetNvdataVersionResult, Error>> + Send;
type GetActiveApFirmwareResponseFut: Future<Output = Result<DeviceGetActiveApFirmwareResult, Error>> + Send;
// Required methods
fn get_hardware_id(&self) -> Self::GetHardwareIdResponseFut;
fn get_rw_firmware_version(&self) -> Self::GetRwFirmwareVersionResponseFut;
fn get_ro_firmware_version(&self) -> Self::GetRoFirmwareVersionResponseFut;
fn get_nvram_metadata_location(
&self
) -> Self::GetNvramMetadataLocationResponseFut;
fn get_flashmap_address(&self) -> Self::GetFlashmapAddressResponseFut;
fn get_nvdata_version(&self) -> Self::GetNvdataVersionResponseFut;
fn get_active_ap_firmware(&self) -> Self::GetActiveApFirmwareResponseFut;
}