pub struct PreopenReport {
pub artifact: String,
pub role: String,
pub scope: Option<String>,
pub surface: PreopenSurface,
pub runtime_dir_reach: Option<RuntimeDirReach>,
pub extra_roots: Vec<ExtraRootReport>,
}Expand description
One artifact’s resolved WASI preopen as it appears in a ScopeReport — and therefore in
mur run --explain-scope, in mur doctor, and in trace.jsonl’s
session_start.effective_grants.
Per-artifact, like StateStoreReport beside it, and reported for the same reason: the
capsule-wide ScopeReport::filesystem_scope is joined into no guest preopen root, so an
operator reading that field alone learns nothing about what any tool, driver or hook can
actually see.
Fields§
§artifact: StringThe artifact whose entry in the capsule operator’s own manifest this describes.
role: Stringmurmur_artifact::ArtifactRuntime::as_str verbatim, so the report and the manifest name
a role with one vocabulary.
scope: Option<String>The entry’s declared capabilities.filesystem.scope, verbatim. None = undeclared, which
is what Self::surface has already resolved against the role’s own baseline.
surface: PreopenSurfaceWhat the guest is preopened into once the role’s baseline and Self::scope are both
applied.
runtime_dir_reach: Option<RuntimeDirReach>How the artifact reaches the session’s runtime directory, read-only: at murmur-runtime/
for a runtime: tool with no capabilities.filesystem.scope. None — serialized
null — for every other entry, which has no reach.
extra_roots: Vec<ExtraRootReport>The host folders the guest is also preopened into, under murmur-host
(crate::guest_roots), in preopen order. Filled for exactly the entries that reach the
runtime directory, from the session’s unconfined stance or host_paths. Always
serialized: [] for every other entry.
Implementations§
Source§impl PreopenReport
impl PreopenReport
Sourcepub fn render(&self) -> String
pub fn render(&self) -> String
The single line this preopen renders as, shared by ScopeReport::render and by
mur doctor so the two cannot word the same grant differently.
Trait Implementations§
Source§impl Clone for PreopenReport
impl Clone for PreopenReport
Source§impl Debug for PreopenReport
impl Debug for PreopenReport
impl Eq for PreopenReport
Source§impl PartialEq for PreopenReport
impl PartialEq for PreopenReport
Source§impl Serialize for PreopenReport
impl Serialize for PreopenReport
impl StructuralPartialEq for PreopenReport
Auto Trait Implementations§
impl Forget for PreopenReport
impl Freeze for PreopenReport
impl RefUnwindSafe for PreopenReport
impl Send for PreopenReport
impl Sync for PreopenReport
impl Unpin for PreopenReport
impl UnsafeUnpin for PreopenReport
impl UnwindSafe for PreopenReport
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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 more