pub struct Layout {}Expand description
Contains the paths of all target output locations.
See module docs for more information.
Fields§
§root: PathBufThe root directory: /path/to/target.
If cross compiling: /path/to/target/$TRIPLE.
dest: PathBufThe final artifact destination: $root/debug (or release).
deps: PathBufThe directory with rustc artifacts: $dest/deps
build: PathBufThe directory for build scripts: $dest/build
artifact: PathBufThe directory for artifacts, i.e. binaries, cdylibs, staticlibs: $dest/deps/artifact
incremental: PathBufThe directory for incremental files: $dest/incremental
fingerprint: PathBufThe directory for fingerprints: $dest/.fingerprint
examples: PathBufThe directory for examples: $dest/examples
build_examples: PathBufThe directory for pre-uplifted examples: $build-dir/debug/examples
doc: PathBufThe directory for rustdoc output: $root/doc
tmp: PathBufThe directory for temporary data of integration tests and benches: $dest/tmp
_lock: FileLockThe lockfile for a build (.cargo-lock). Will be unlocked when this
struct is dropped.
_build_lock: Option<FileLock>Same as _lock but for the build directory.
Will be None when the build-dir and target-dir are the same path as we cannot
lock the same path twice.
Implementations§
Source§impl Layout
impl Layout
Sourcepub fn new(
ws: &Workspace<'_>,
target: Option<CompileTarget>,
dest: &str,
) -> CargoResult<Layout>
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”.
Sourcepub fn prepare(&mut self) -> CargoResult<()>
pub fn prepare(&mut self) -> CargoResult<()>
Makes sure all directories stored in the Layout exist on the filesystem.
Sourcepub fn build_examples(&self) -> &Path
pub fn build_examples(&self) -> &Path
Fetch the build examples path.
Sourcepub fn incremental(&self) -> &Path
pub fn incremental(&self) -> &Path
Fetch the incremental path.
Sourcepub fn fingerprint(&self) -> &Path
pub fn fingerprint(&self) -> &Path
Fetch the fingerprint path.
Sourcepub fn prepare_tmp(&self) -> CargoResult<&Path>
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> 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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<T> ErasedDestructor for Twhere
T: 'static,
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: 328 bytes