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>
§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>
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