pub trait VendorProxyInterface: Send + Sync {
type GetFeaturesResponseFut: Future<Output = Result<VendorFeatures, Error>> + Send;
type EncodeCommandResponseFut: Future<Output = Result<VendorEncodeCommandResult, Error>> + Send;
type OpenHciResponseFut: Future<Output = Result<VendorOpenHciResult, Error>> + Send;
type OpenHciTransportResponseFut: Future<Output = Result<VendorOpenHciTransportResult, Error>> + Send;
type OpenSnoopResponseFut: Future<Output = Result<VendorOpenSnoopResult, Error>> + Send;
// Required methods
fn get_features(&self) -> Self::GetFeaturesResponseFut;
fn encode_command(
&self,
payload: &VendorCommand,
) -> Self::EncodeCommandResponseFut;
fn open_hci(&self) -> Self::OpenHciResponseFut;
fn open_hci_transport(&self) -> Self::OpenHciTransportResponseFut;
fn open_snoop(&self) -> Self::OpenSnoopResponseFut;
}