Struct rustc_metadata::creader::CStore
source · [−]pub struct CStore {
metas: IndexVec<CrateNum, Option<Lrc<CrateMetadata>>>,
injected_panic_runtime: Option<CrateNum>,
allocator_kind: Option<AllocatorKind>,
has_global_allocator: bool,
pub(crate) stable_crate_ids: FxHashMap<StableCrateId, CrateNum>,
unused_externs: Vec<Symbol>,
}Fields
metas: IndexVec<CrateNum, Option<Lrc<CrateMetadata>>>injected_panic_runtime: Option<CrateNum>allocator_kind: Option<AllocatorKind>This crate needs an allocator and either provides it itself, or finds it in a dependency. If the above is true, then this field denotes the kind of the found allocator.
has_global_allocator: boolThis crate has a #[global_allocator] item.
stable_crate_ids: FxHashMap<StableCrateId, CrateNum>This map is used to verify we get no hash conflicts between
StableCrateId values.
unused_externs: Vec<Symbol>Unused externs of the crate
Implementations
pub fn struct_field_names_untracked<'a>(
&'a self,
def: DefId,
sess: &'a Session
) -> impl Iterator<Item = Spanned<Symbol>> + 'a
pub fn struct_field_visibilities_untracked(
&self,
def: DefId
) -> impl Iterator<Item = Visibility> + '_
Only public-facing way to traverse all the definitions in a non-local crate. Critically useful for this third-party project: https://github.com/hacspec/hacspec. See https://github.com/rust-lang/rust/pull/85889 for context.
pub fn item_attrs_untracked<'a>(
&'a self,
def_id: DefId,
sess: &'a Session
) -> impl Iterator<Item = Attribute> + 'a
pub fn get_proc_macro_quoted_span_untracked(
&self,
cnum: CrateNum,
id: usize,
sess: &Session
) -> Span
pub fn trait_impls_in_crate_untracked(
&self,
cnum: CrateNum
) -> impl Iterator<Item = (DefId, Option<SimplifiedType>)> + '_
Trait Implementations
Returns the DefKey for a given DefId. This indicates the
parent DefId as well as some idea of what kind of data the
DefId refers to.
Fetch a DefId from a DefPathHash for a foreign crate.
fn expn_hash_to_expn_id(
&self,
sess: &Session,
cnum: CrateNum,
index_guess: u32,
hash: ExpnHash
) -> ExpnId
Imports all SourceFiles from the given crate into the current session.
This normally happens automatically when we decode a Span from
that crate’s metadata - however, the incr comp cache needs
to trigger this manually when decoding a foreign Span Read more
Auto Trait Implementations
impl !RefUnwindSafe for CStore
impl !UnwindSafe for CStore
Blanket Implementations
Mutably borrows from an owned value. Read more
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: 88 bytes