Skip to main content

View

Struct View 

Source
pub struct View {
    pub fs: Fs,
    pub kernel_release: Option<Vec<u8>>,
    pub hostname: Option<Vec<u8>>,
    pub fake_root: bool,
    cleanup_dirs: Vec<Vec<u8>>,
    placeholders: Mutex<Vec<Placeholder>>,
}
Expand description

One guest: a filesystem view and the launch options that go with it.

The first tracee gets the view the command line describes. A tracee that execs proot or bwrap gets a view of its own, composed through the one it asked from, which its descendants inherit (see exec::nested).

Fields§

§fs: Fs

Root and bindings, in host terms.

§kernel_release: Option<Vec<u8>>

Value reported by uname(2) in the release field, if faked.

§hostname: Option<Vec<u8>>

Value reported by uname(2) in the nodename field, if faked.

§fake_root: bool

Pretend to be root (-0).

§cleanup_dirs: Vec<Vec<u8>>

Directories removed once the last process of the view is gone (a nested bwrap’s materialized root).

§placeholders: Mutex<Vec<Placeholder>>

Mount points created for the bindings, removed with the view.

Implementations§

Source§

impl View

Source

pub fn new( config: &Config, procs: Arc<ProcTable>, cache: Arc<DirCache>, cleanup: bool, ) -> View

Builds a view from a configuration whose paths are host paths, and creates the mount points its bindings are missing (see glue).

§Arguments
  • config - Root, bindings and flags.
  • procs - Process table shared with the supervisor.
  • cache - Directory cache shared with the supervisor’s other views.
  • cleanup - Remove config.cleanup_dirs when the view is dropped.
Source

pub fn remove_placeholders(&self)

Removes the mount points created for this view’s bindings.

Called when the guest is done; later calls do nothing.

Trait Implementations§

Source§

impl Debug for View

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Drop for View

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

§

impl !Freeze for View

§

impl RefUnwindSafe for View

§

impl Send for View

§

impl Sync for View

§

impl Unpin for View

§

impl UnsafeUnpin for View

§

impl UnwindSafe for View

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.