pub trait DeviceProxyInterface: Send + Sync {
type GetBootProtocolResponseFut: Future<Output = Result<BootProtocol, Error>> + Send;
type GetDeviceIdsResponseFut: Future<Output = Result<DeviceIds, Error>> + Send;
type GetReportDescResponseFut: Future<Output = Result<Vec<u8>, Error>> + Send;
type GetDeviceReportsReaderResponseFut: Future<Output = Result<DeviceGetDeviceReportsReaderResult, Error>> + Send;
type ReadReportResponseFut: Future<Output = Result<(i32, Vec<u8>, i64), Error>> + Send;
type ReadReportsResponseFut: Future<Output = Result<(i32, Vec<u8>), Error>> + Send;
type GetReportsEventResponseFut: Future<Output = Result<(i32, Event), Error>> + Send;
type GetReportResponseFut: Future<Output = Result<(i32, Vec<u8>), Error>> + Send;
type SetReportResponseFut: Future<Output = Result<i32, Error>> + Send;
// Required methods
fn get_boot_protocol(&self) -> Self::GetBootProtocolResponseFut;
fn get_device_ids(&self) -> Self::GetDeviceIdsResponseFut;
fn get_report_desc(&self) -> Self::GetReportDescResponseFut;
fn get_device_reports_reader(
&self,
reader: ServerEnd<DeviceReportsReaderMarker>
) -> Self::GetDeviceReportsReaderResponseFut;
fn read_report(&self) -> Self::ReadReportResponseFut;
fn read_reports(&self) -> Self::ReadReportsResponseFut;
fn get_reports_event(&self) -> Self::GetReportsEventResponseFut;
fn get_report(
&self,
type_: ReportType,
id: u8
) -> Self::GetReportResponseFut;
fn set_report(
&self,
type_: ReportType,
id: u8,
report: &[u8]
) -> Self::SetReportResponseFut;
fn set_trace_id(&self, id: u32) -> Result<(), Error>;
}