pub struct OverlayProvider;Expand description
Overlayfs provider — near-instant CoW mounts (Linux only).
Layout:
cache_dir/ ← lower (read-only, shared across boxes)
box_dir/upper/ ← upper (per-box writes)
box_dir/work/ ← overlayfs workdir
box_dir/merged/ ← merged view → RootfsSource::DirectoryTrait Implementations§
Source§impl RootfsProvider for OverlayProvider
impl RootfsProvider for OverlayProvider
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 OverlayProvider
impl RefUnwindSafe for OverlayProvider
impl Send for OverlayProvider
impl Sync for OverlayProvider
impl Unpin for OverlayProvider
impl UnsafeUnpin for OverlayProvider
impl UnwindSafe for OverlayProvider
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