pub struct HarnessBinaryInfo {
pub path: PathBuf,
pub interpreter: Option<PathBuf>,
pub launcher: Option<PathBuf>,
}Expand description
The resolved harness binary, for the report and the enforcement derivation.
Fields§
§path: PathBuf§interpreter: Option<PathBuf>The interpreter a #! first line names; None for an ELF binary.
launcher: Option<PathBuf>For #!/usr/bin/env <name>, the env the line names (<name> being the interpreter);
None otherwise.
Implementations§
Source§impl HarnessBinaryInfo
impl HarnessBinaryInfo
Sourcepub fn read(binary: &Path) -> Self
pub fn read(binary: &Path) -> Self
binary and the interpreter its #! line names, resolved on the harness’s PATH.
Sourcepub fn exec_files(&self) -> Vec<PathBuf>
pub fn exec_files(&self) -> Vec<PathBuf>
Every file the harness’s exec runs: the binary, then for a #! script the env launcher
the line names, if any, and the interpreter. Each is granted exactly as a
capabilities.shell.allow binary.
Trait Implementations§
Source§impl Clone for HarnessBinaryInfo
impl Clone for HarnessBinaryInfo
Auto Trait Implementations§
impl Forget for HarnessBinaryInfo
impl Freeze for HarnessBinaryInfo
impl Move for HarnessBinaryInfo
impl RefUnwindSafe for HarnessBinaryInfo
impl Send for HarnessBinaryInfo
impl Sync for HarnessBinaryInfo
impl Unpin for HarnessBinaryInfo
impl UnsafeUnpin for HarnessBinaryInfo
impl UnwindSafe for HarnessBinaryInfo
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
Mutably borrows from an owned value. Read more
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> ⓘ
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