Struct rustc_metadata::creader::CStore [−][src]
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: bool
This 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
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.
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.
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