pub trait PartitionProxyInterface: Send + Sync {
type GetInfoResponseFut: Future<Output = Result<BlockGetInfoResult, Error>> + Send;
type GetStatsResponseFut: Future<Output = Result<BlockGetStatsResult, Error>> + Send;
type ReadBlocksResponseFut: Future<Output = Result<BlockReadBlocksResult, Error>> + Send;
type WriteBlocksResponseFut: Future<Output = Result<BlockWriteBlocksResult, Error>> + Send;
type GetTypeGuidResponseFut: Future<Output = Result<(i32, Option<Box<Guid>>), Error>> + Send;
type GetInstanceGuidResponseFut: Future<Output = Result<(i32, Option<Box<Guid>>), Error>> + Send;
type GetNameResponseFut: Future<Output = Result<(i32, Option<String>), Error>> + Send;
// Required methods
fn get_info(&self) -> Self::GetInfoResponseFut;
fn get_stats(&self, clear: bool) -> Self::GetStatsResponseFut;
fn open_session(
&self,
session: ServerEnd<SessionMarker>
) -> Result<(), Error>;
fn read_blocks(
&self,
vmo: Vmo,
length: u64,
dev_offset: u64,
vmo_offset: u64
) -> Self::ReadBlocksResponseFut;
fn write_blocks(
&self,
vmo: Vmo,
length: u64,
dev_offset: u64,
vmo_offset: u64
) -> Self::WriteBlocksResponseFut;
fn get_type_guid(&self) -> Self::GetTypeGuidResponseFut;
fn get_instance_guid(&self) -> Self::GetInstanceGuidResponseFut;
fn get_name(&self) -> Self::GetNameResponseFut;
}