pub trait CoordinatorProxyInterface: Send + Sync {
type AddDeviceResponseFut: Future<Output = Result<CoordinatorAddDeviceResult, Error>> + Send;
type ScheduleUnbindChildrenResponseFut: Future<Output = Result<CoordinatorScheduleUnbindChildrenResult, Error>> + Send;
type BindDeviceResponseFut: Future<Output = Result<CoordinatorBindDeviceResult, Error>> + Send;
type GetTopologicalPathResponseFut: Future<Output = Result<CoordinatorGetTopologicalPathResult, Error>> + Send;
type LoadFirmwareResponseFut: Future<Output = Result<CoordinatorLoadFirmwareResult, Error>> + Send;
type GetMetadataResponseFut: Future<Output = Result<CoordinatorGetMetadataResult, Error>> + Send;
type GetMetadataSizeResponseFut: Future<Output = Result<CoordinatorGetMetadataSizeResult, Error>> + Send;
type AddMetadataResponseFut: Future<Output = Result<CoordinatorAddMetadataResult, Error>> + Send;
type AddCompositeDeviceResponseFut: Future<Output = Result<CoordinatorAddCompositeDeviceResult, Error>> + Send;
type AddCompositeNodeSpecResponseFut: Future<Output = Result<CoordinatorAddCompositeNodeSpecResult, Error>> + Send;
type ConnectFidlProtocolResponseFut: Future<Output = Result<CoordinatorConnectFidlProtocolResult, Error>> + Send;
// Required methods
fn add_device(
&self,
args: &mut AddDeviceArgs,
coordinator: ServerEnd<CoordinatorMarker>,
device_controller: ClientEnd<DeviceControllerMarker>,
inspect: Option<Vmo>,
outgoing_dir: Option<ClientEnd<DirectoryMarker>>
) -> Self::AddDeviceResponseFut;
fn schedule_remove(&self, unbind_self: bool) -> Result<(), Error>;
fn schedule_unbind_children(
&self
) -> Self::ScheduleUnbindChildrenResponseFut;
fn bind_device(
&self,
driver_url_suffix: Option<&str>
) -> Self::BindDeviceResponseFut;
fn get_topological_path(&self) -> Self::GetTopologicalPathResponseFut;
fn load_firmware(
&self,
driver_path: &str,
fw_path: &str
) -> Self::LoadFirmwareResponseFut;
fn get_metadata(&self, key: u32) -> Self::GetMetadataResponseFut;
fn get_metadata_size(&self, key: u32) -> Self::GetMetadataSizeResponseFut;
fn add_metadata(
&self,
key: u32,
data: Option<&[u8]>
) -> Self::AddMetadataResponseFut;
fn add_composite_device(
&self,
name: &str,
comp_desc: &mut CompositeDeviceDescriptor
) -> Self::AddCompositeDeviceResponseFut;
fn add_composite_node_spec(
&self,
name: &str,
spec: &mut CompositeNodeSpecDescriptor
) -> Self::AddCompositeNodeSpecResponseFut;
fn connect_fidl_protocol(
&self,
fragment_name: Option<&str>,
service_name: Option<&str>,
protocol_name: &str,
server: Channel
) -> Self::ConnectFidlProtocolResponseFut;
}