pub struct UnitInner {
pub pkg: Package,
pub target: Target,
pub profile: Profile,
pub kind: CompileKind,
pub mode: CompileMode,
pub features: Vec<InternedString>,
pub artifact: IsArtifact,
pub is_std: bool,
pub dep_hash: u64,
pub artifact_target_for_features: Option<CompileTarget>,
}
Expand description
Internal fields of Unit
which Unit
will dereference to.
Fields§
§pkg: Package
Information about available targets, which files to include/exclude, etc. Basically stuff in
Cargo.toml
.
target: Target
Information about the specific target to build, out of the possible targets in pkg
. Not
to be confused with target-triple (or target architecture …), the target arch for a
build.
profile: Profile
The profile contains information about how the build should be run, including debug level, etc.
kind: CompileKind
Whether this compilation unit is for the host or target architecture.
For example, when cross compiling and using a custom build script, the build script needs to be compiled for the host architecture so the host rustc can use it (when compiling to the target architecture).
mode: CompileMode
The “mode” this unit is being compiled for. See CompileMode
for more details.
features: Vec<InternedString>
The cfg
features to enable for this unit.
This must be sorted.
artifact: IsArtifact
§is_std: bool
Whether this is a standard library unit.
dep_hash: u64
A hash of all dependencies of this unit.
This is used to keep the Unit
unique in the situation where two
otherwise identical units need to link to different dependencies. This
can happen, for example, when there are shared dependencies that need
to be built with different features between normal and build
dependencies. See rebuild_unit_graph_shared
for more on why this is
done.
This value initially starts as 0, and then is filled in via a second-pass after all the unit dependencies have been computed.
artifact_target_for_features: Option<CompileTarget>
This is used for target-dependent feature resolution and is copied from
FeaturesFor::ArtifactDep
, if the enum matches the variant.
Implementations§
source§impl UnitInner
impl UnitInner
sourcepub fn requires_upstream_objects(&self) -> bool
pub fn requires_upstream_objects(&self) -> bool
Returns whether compilation of this unit requires all upstream artifacts to be available.
This effectively means that this unit is a synchronization point (if the
return value is true
) that all previously pipelined units need to
finish in their entirety before this one is started.
sourcepub fn is_local(&self) -> bool
pub fn is_local(&self) -> bool
Returns whether or not this is a “local” package.
A “local” package is one that the user can likely edit, or otherwise wants warnings, etc.
sourcepub fn show_warnings(&self, config: &Config) -> bool
pub fn show_warnings(&self, config: &Config) -> bool
Returns whether or not warnings should be displayed for this unit.
Trait Implementations§
source§impl Ord for UnitInner
impl Ord for UnitInner
source§impl PartialEq<UnitInner> for UnitInner
impl PartialEq<UnitInner> for UnitInner
source§impl PartialOrd<UnitInner> for UnitInner
impl PartialOrd<UnitInner> for UnitInner
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moreimpl Eq for UnitInner
impl StructuralEq for UnitInner
impl StructuralPartialEq for UnitInner
Auto Trait Implementations§
impl RefUnwindSafe for UnitInner
impl !Send for UnitInner
impl !Sync for UnitInner
impl Unpin for UnitInner
impl UnwindSafe for UnitInner
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<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.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> WithSubscriber for T
impl<T> WithSubscriber for T
source§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>,
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
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: 232 bytes