pub trait RemoteServiceProxyInterface: Send + Sync {
type DiscoverCharacteristicsResponseFut: Future<Output = Result<Vec<Characteristic>, Error>> + Send;
type ReadByTypeResponseFut: Future<Output = Result<RemoteServiceReadByTypeResult, Error>> + Send;
type ReadCharacteristicResponseFut: Future<Output = Result<RemoteServiceReadCharacteristicResult, Error>> + Send;
type WriteCharacteristicResponseFut: Future<Output = Result<RemoteServiceWriteCharacteristicResult, Error>> + Send;
type ReadDescriptorResponseFut: Future<Output = Result<RemoteServiceReadDescriptorResult, Error>> + Send;
type WriteDescriptorResponseFut: Future<Output = Result<RemoteServiceWriteDescriptorResult, Error>> + Send;
type RegisterCharacteristicNotifierResponseFut: Future<Output = Result<RemoteServiceRegisterCharacteristicNotifierResult, Error>> + Send;
// Required methods
fn discover_characteristics(
&self
) -> Self::DiscoverCharacteristicsResponseFut;
fn read_by_type(&self, uuid: &Uuid) -> Self::ReadByTypeResponseFut;
fn read_characteristic(
&self,
handle: &Handle,
options: &ReadOptions
) -> Self::ReadCharacteristicResponseFut;
fn write_characteristic(
&self,
handle: &Handle,
value: &[u8],
options: &WriteOptions
) -> Self::WriteCharacteristicResponseFut;
fn read_descriptor(
&self,
handle: &Handle,
options: &ReadOptions
) -> Self::ReadDescriptorResponseFut;
fn write_descriptor(
&self,
handle: &Handle,
value: &[u8],
options: &WriteOptions
) -> Self::WriteDescriptorResponseFut;
fn register_characteristic_notifier(
&self,
handle: &Handle,
notifier: ClientEnd<CharacteristicNotifierMarker>
) -> Self::RegisterCharacteristicNotifierResponseFut;
}