[][src]Struct rustwide::BuildDirectory

pub struct BuildDirectory { /* fields omitted */ }

Directory in the Workspace where builds can be executed.

The build directory contains the source code of the crate being built and the target directory used by cargo to store build artifacts. If multiple builds are executed in the same build directory they will share the target directory.

Methods

impl BuildDirectory[src]

pub fn build<R, F: FnOnce(&Build) -> Result<R, Error>>(
    &mut self,
    toolchain: &Toolchain,
    krate: &Crate,
    sandbox: SandboxBuilder,
    f: F
) -> Result<R, Error>
[src]

Run a sandboxed build of the provided crate with the provided toolchain. The closure will be provided an instance of Build that allows spawning new processes inside the sandbox.

All the state will be kept on disk as long as the closure doesn't exit: after that things might be removed.

Example

let mut build_dir = workspace.build_dir("foo");
build_dir.build(&toolchain, &krate, sandbox, |build| {
    build.cargo().args(&["test", "--all"]).run()?;
    Ok(())
})?;

pub fn purge(&mut self) -> Result<(), Error>[src]

Remove all the contents of the build directory, freeing disk space.

Auto Trait Implementations

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Erased for T

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 

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

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