cargo::core::compiler::layout

Struct Layout

source
pub struct Layout {
    root: PathBuf,
    dest: PathBuf,
    deps: PathBuf,
    build: PathBuf,
    artifact: PathBuf,
    incremental: PathBuf,
    fingerprint: PathBuf,
    examples: PathBuf,
    doc: PathBuf,
    tmp: PathBuf,
    _lock: FileLock,
}
Expand description

Contains the paths of all target output locations.

See module docs for more information.

Fields§

§root: PathBuf

The root directory: /path/to/target. If cross compiling: /path/to/target/$TRIPLE.

§dest: PathBuf

The final artifact destination: $root/debug (or release).

§deps: PathBuf

The directory with rustc artifacts: $dest/deps

§build: PathBuf

The directory for build scripts: $dest/build

§artifact: PathBuf

The directory for artifacts, i.e. binaries, cdylibs, staticlibs: $dest/deps/artifact

§incremental: PathBuf

The directory for incremental files: $dest/incremental

§fingerprint: PathBuf

The directory for fingerprints: $dest/.fingerprint

§examples: PathBuf

The directory for examples: $dest/examples

§doc: PathBuf

The directory for rustdoc output: $root/doc

§tmp: PathBuf

The directory for temporary data of integration tests and benches: $dest/tmp

§_lock: FileLock

The lockfile for a build (.cargo-lock). Will be unlocked when this struct is dropped.

Implementations§

source§

impl Layout

source

pub fn new( ws: &Workspace<'_>, target: Option<CompileTarget>, dest: &str, ) -> CargoResult<Layout>

Calculate the paths for build output, lock the build directory, and return as a Layout.

This function will block if the directory is already locked.

dest should be the final artifact directory name. Currently either “debug” or “release”.

source

pub fn prepare(&mut self) -> CargoResult<()>

Makes sure all directories stored in the Layout exist on the filesystem.

source

pub fn dest(&self) -> &Path

Fetch the destination path for final artifacts (/…/target/debug).

source

pub fn deps(&self) -> &Path

Fetch the deps path.

source

pub fn examples(&self) -> &Path

Fetch the examples path.

source

pub fn doc(&self) -> &Path

Fetch the doc path.

source

pub fn root(&self) -> &Path

Fetch the root path (/…/target).

source

pub fn incremental(&self) -> &Path

Fetch the incremental path.

source

pub fn fingerprint(&self) -> &Path

Fetch the fingerprint path.

source

pub fn build(&self) -> &Path

Fetch the build script path.

source

pub fn artifact(&self) -> &Path

Fetch the artifact path.

source

pub fn prepare_tmp(&self) -> CargoResult<&Path>

Create and return the tmp path.

Auto Trait Implementations§

§

impl Freeze for Layout

§

impl RefUnwindSafe for Layout

§

impl Send for Layout

§

impl Sync for Layout

§

impl Unpin for Layout

§

impl UnwindSafe for Layout

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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

source§

type Output = T

Should always be Self
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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 272 bytes