struct State<'a, 'gctx> {Show 15 fields
ws: &'a Workspace<'gctx>,
gctx: &'gctx GlobalContext,
unit_dependencies: UnitGraph,
package_set: &'a PackageSet<'gctx>,
usr_resolve: &'a Resolve,
usr_features: &'a ResolvedFeatures,
std_resolve: Option<&'a Resolve>,
std_features: Option<&'a ResolvedFeatures>,
is_std: bool,
global_mode: CompileMode,
target_data: &'a RustcTargetData<'gctx>,
profiles: &'a Profiles,
interner: &'a UnitInterner,
scrape_units: &'a [Unit],
dev_dependency_edges: HashSet<(Unit, Unit)>,
}
Expand description
Collection of stuff used while creating the UnitGraph
.
Fields§
§ws: &'a Workspace<'gctx>
§gctx: &'gctx GlobalContext
§unit_dependencies: UnitGraph
Stores the result of building the UnitGraph
.
package_set: &'a PackageSet<'gctx>
§usr_resolve: &'a Resolve
§usr_features: &'a ResolvedFeatures
§std_resolve: Option<&'a Resolve>
Like usr_resolve
but for building standard library (-Zbuild-std
).
std_features: Option<&'a ResolvedFeatures>
Like usr_features
but for building standard library (-Zbuild-std
).
is_std: bool
true
while generating the dependencies for the standard library.
global_mode: CompileMode
The mode we are compiling in. Used for preventing from building lib thrice.
target_data: &'a RustcTargetData<'gctx>
§profiles: &'a Profiles
§interner: &'a UnitInterner
§scrape_units: &'a [Unit]
§dev_dependency_edges: HashSet<(Unit, Unit)>
A set of edges in unit_dependencies
where (a, b) means that the
dependency from a to b was added purely because it was a dev-dependency.
This is used during connect_run_custom_build_deps
.
Implementations§
Source§impl<'a, 'gctx> State<'a, 'gctx>
impl<'a, 'gctx> State<'a, 'gctx>
Sourcefn features(&self) -> &'a ResolvedFeatures
fn features(&self) -> &'a ResolvedFeatures
Gets std_features
during building std, otherwise usr_features
.
fn activated_features( &self, pkg_id: PackageId, features_for: FeaturesFor, ) -> Vec<InternedString>
fn is_dep_activated( &self, pkg_id: PackageId, features_for: FeaturesFor, dep_name: InternedString, ) -> bool
fn get(&self, id: PackageId) -> &'a Package
Auto Trait Implementations§
impl<'a, 'gctx> Freeze for State<'a, 'gctx>
impl<'a, 'gctx> !RefUnwindSafe for State<'a, 'gctx>
impl<'a, 'gctx> !Send for State<'a, 'gctx>
impl<'a, 'gctx> !Sync for State<'a, 'gctx>
impl<'a, 'gctx> Unpin for State<'a, 'gctx>
impl<'a, 'gctx> !UnwindSafe for State<'a, 'gctx>
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,
impl<T> MaybeSendSync for T
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: 200 bytes