pub struct CopyProvider;Expand description
Full recursive copy provider — works on all platforms.
This is the original behavior: copies the entire cached rootfs into
box_dir/rootfs/. Safe but slow for large images.
Trait Implementations§
Source§impl RootfsProvider for CopyProvider
impl RootfsProvider for CopyProvider
Source§fn cleanup(&self, box_dir: &Path, persistent: bool) -> Result<()>
fn cleanup(&self, box_dir: &Path, persistent: bool) -> Result<()>
Cleanup after box stops. Read more
Source§fn resume_for_boot(
&self,
box_dir: &Path,
options: RootfsResumeOptions,
) -> Result<Option<ResumedRootfs>>
fn resume_for_boot( &self, box_dir: &Path, options: RootfsResumeOptions, ) -> Result<Option<ResumedRootfs>>
Reopen a durable guest-owned generation without reconstructing a host
staging tree. Directory providers return
None.Source§fn prepare_oci_for_boot(
&self,
box_dir: &Path,
options: RootfsOciPrepareOptions<'_>,
) -> Result<Option<ResumedRootfs>>
fn prepare_oci_for_boot( &self, box_dir: &Path, options: RootfsOciPrepareOptions<'_>, ) -> Result<Option<ResumedRootfs>>
Build a rootfs artifact directly from verified OCI layers. Providers
that require a directory staging view return
None and retain the
compatibility preparation flow.Source§fn prepare_empty(&self, box_dir: &Path) -> Result<PathBuf>
fn prepare_empty(&self, box_dir: &Path) -> Result<PathBuf>
Prepare an empty writable rootfs for an OCI cache miss.
Source§fn finalize_for_boot(
&self,
box_dir: &Path,
staged_rootfs: &Path,
options: RootfsFinalizeOptions,
) -> Result<RootfsSource>
fn finalize_for_boot( &self, box_dir: &Path, staged_rootfs: &Path, options: RootfsFinalizeOptions, ) -> Result<RootfsSource>
Finalize the staged tree and choose the root filesystem transport. Read more
Source§fn preserve_on_boot_failure(&self, box_dir: &Path) -> bool
fn preserve_on_boot_failure(&self, box_dir: &Path) -> bool
Whether a failed boot must retain the provider’s rootfs generations. Read more
Source§fn record_clean_stop(&self, box_dir: &Path) -> Result<()>
fn record_clean_stop(&self, box_dir: &Path) -> Result<()>
Record that a guest-owned rootfs completed a verified clean stop. Read more
Source§fn supports_artifact_cache(&self) -> bool
fn supports_artifact_cache(&self) -> bool
Whether this provider can consume the immutable artifact cache contract.
Source§fn supports_direct_oci_assembly(&self) -> bool
fn supports_direct_oci_assembly(&self) -> bool
Whether layout preparation should offer verified OCI inputs before
allocating a directory staging transport.
Source§fn guest_owns_terminal_fencing(&self) -> bool
fn guest_owns_terminal_fencing(&self) -> bool
Whether guest-init, rather than the host staging view, owns terminal
metadata invalidation for this provider’s supported lifecycle modes.
Source§fn guest_owns_diff_baseline(&self) -> bool
fn guest_owns_diff_baseline(&self) -> bool
Whether guest-init must capture the pristine diff baseline because the
finalized rootfs has no host-visible directory.
Auto Trait Implementations§
impl Freeze for CopyProvider
impl RefUnwindSafe for CopyProvider
impl Send for CopyProvider
impl Sync for CopyProvider
impl Unpin for CopyProvider
impl UnsafeUnpin for CopyProvider
impl UnwindSafe for CopyProvider
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more