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,
intent: UserIntent,
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: UnitGraphStores 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: booltrue while generating the dependencies for the standard library.
intent: UserIntentThe high-level operation requested by the user. 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,
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