pub struct WindowsLayerEntry {
pub layer_id: String,
pub layer_path: PathBuf,
pub blob_path: Option<PathBuf>,
}Expand description
On-disk reference to one materialised parent layer.
Stored on BuildSkeleton so subsequent RUN steps can build the
HCS LayerChain (child-to-parent order) the storage filter expects.
Cross-platform plain data — the chain is only consumed by
target_os = "windows" code, but the type compiles everywhere so
the public API and unit tests stay portable.
Fields§
§layer_id: StringCaller-chosen GUID/uuid for the layer. HCS stores it inside the
LayerData JSON so the storage filter can route opens.
layer_path: PathBufAbsolute path to the layer directory (e.g.
<cache_dir>/<build_id>/unpacked/<layer_id>/).
This is the HCS-imported read-only layer dir (materialised VHD +
Files/ + Hives/), owned by SYSTEM with restrictive ACLs. It is the
parent-chain handle the storage filter consumes — it is NOT a readable
source for the layer’s gzip blob (the dir holds the unpacked VHD, not
the compressed tar). Never fs::read this for the OCI descriptor bytes;
use blob_path instead.
blob_path: Option<PathBuf>Absolute path to the plain, process-owned compressed (tar+gzip) layer blob file — the exact bytes whose sha256 is the OCI descriptor digest, persisted from the in-memory blob the RUN/COPY commit already produced.
Some for builder-produced layers (RUN/COPY/ADD); None for foreign
base layers (their bytes are never re-uploaded — the runtime rehydrates
them from the manifest’s urls[]). The OCI export
([export_built_image_to_oci_archive]) and the registry push
([push_impl]) read THIS file, never layer_path,
which would otherwise hit ERROR_ACCESS_DENIED opening the restricted
HCS layer directory.
Trait Implementations§
Source§impl Clone for WindowsLayerEntry
impl Clone for WindowsLayerEntry
Source§fn clone(&self) -> WindowsLayerEntry
fn clone(&self) -> WindowsLayerEntry
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for WindowsLayerEntry
impl RefUnwindSafe for WindowsLayerEntry
impl Send for WindowsLayerEntry
impl Sync for WindowsLayerEntry
impl Unpin for WindowsLayerEntry
impl UnsafeUnpin for WindowsLayerEntry
impl UnwindSafe for WindowsLayerEntry
Blanket Implementations§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request