pub trait PaverServerHandler<___T: Transport = Channel> {
// Required methods
fn find_data_sink(
&mut self,
request: Request<FindDataSink, ___T>,
) -> impl Future<Output = ()> + Send;
fn open_partition_io(
&mut self,
request: Request<OpenPartitionIo, ___T>,
) -> impl Future<Output = ()> + Send;
fn find_partition_table_manager(
&mut self,
request: Request<FindPartitionTableManager, ___T>,
) -> impl Future<Output = ()> + Send;
fn find_boot_manager(
&mut self,
request: Request<FindBootManager, ___T>,
) -> impl Future<Output = ()> + Send;
fn find_sysconfig(
&mut self,
request: Request<FindSysconfig, ___T>,
) -> impl Future<Output = ()> + Send;
}Expand description
A server handler for the Paver protocol.
See Paver for more details.
Required Methods§
Sourcefn find_data_sink(
&mut self,
request: Request<FindDataSink, ___T>,
) -> impl Future<Output = ()> + Send
fn find_data_sink( &mut self, request: Request<FindDataSink, ___T>, ) -> impl Future<Output = ()> + Send
Attempts to auto-discover the data sink where assets and volumes will get paved to. On devices with GPT, the partition must have a valid FVM partition in order for auto-discovery to find it. If multiple devices are found suitable, error is returned.
data_sink will be closed on error, with an epitaph provided on failure reason.
Sourcefn open_partition_io(
&mut self,
request: Request<OpenPartitionIo, ___T>,
) -> impl Future<Output = ()> + Send
fn open_partition_io( &mut self, request: Request<OpenPartitionIo, ___T>, ) -> impl Future<Output = ()> + Send
Opens a PartitionIo session backed by block devices in the caller-provided block_dir.
Under the capability-delegated permission model, the paver component does not hold ambient
access to all system block partitions. Instead, the caller (such as system-updater or
fastboot) is responsible for routing the required block device capabilities into its own
namespace (for example, via a scoped /block or /block/ota directory exposed by fshost)
and passing block_dir to the paver for the duration of the PartitionIo session.
block_dir is expected to follow the fshost /block directory layout (see
https://fuchsia.dev/fuchsia-src/development/storage/storage-partition-routing): each entry
<entry>/ is a subdirectory containing a fuchsia.storage.block.Block protocol node at
<entry>/fuchsia.storage.block.Block.
partition_io will be closed on error, with an epitaph provided on failure reason.
Sourcefn find_partition_table_manager(
&mut self,
request: Request<FindPartitionTableManager, ___T>,
) -> impl Future<Output = ()> + Send
fn find_partition_table_manager( &mut self, request: Request<FindPartitionTableManager, ___T>, ) -> impl Future<Output = ()> + Send
Like FindDataSink, but the returned block device will be dynamic, supporting partition
table manipulation.
data_sink will be closed on error, with an epitaph provided on failure reason.
Sourcefn find_boot_manager(
&mut self,
request: Request<FindBootManager, ___T>,
) -> impl Future<Output = ()> + Send
fn find_boot_manager( &mut self, request: Request<FindBootManager, ___T>, ) -> impl Future<Output = ()> + Send
Attempts to auto-discover the boot manager.
boot_manager will be closed on error, with an epitaph provided on failure reason.
ZX_ERR_NOT_SUPPORTED indicates lack of support and configuration A is always booted from.
Sourcefn find_sysconfig(
&mut self,
request: Request<FindSysconfig, ___T>,
) -> impl Future<Output = ()> + Send
fn find_sysconfig( &mut self, request: Request<FindSysconfig, ___T>, ) -> impl Future<Output = ()> + Send
Find Sysconfig service.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".