BlockConnector

Trait BlockConnector 

Source
pub trait BlockConnector: Send + Sync {
    // Required method
    fn connect_channel_to_volume(
        &self,
        server_end: ServerEnd<VolumeMarker>,
    ) -> Result<(), Error>;

    // Provided methods
    fn connect_volume(&self) -> Result<ClientEnd<VolumeMarker>, Error> { ... }
    fn connect_partition(&self) -> Result<ClientEnd<PartitionMarker>, Error> { ... }
    fn connect_block(&self) -> Result<ClientEnd<BlockMarker>, Error> { ... }
}
Expand description

Creates new connections to an instance of fuchsia.hardware.block.Block and similar protocols (Volume, Partition).

NOTE: It is important to understand the difference between BlockConnector and the actual protocols (e.g. a ClientEnd<BlockMarker> or BlockProxy): BlockConnector is used to create new connections to a Block.

It is not possible to directly convert a ClientEnd<BlockMarker> (or BlockProxy) into a BlockConnector, because Block is not cloneable. To implement BlockConnector, you will need a way to generate new connections to a Block instance. A few common implementations are provided below.

Required Methods§

Provided Methods§

Implementations on Foreign Types§

Source§

impl BlockConnector for ControllerProxy

Source§

impl BlockConnector for PartitionServiceProxy

Source§

impl<T: BlockConnector> BlockConnector for Arc<T>

Implementors§