[−][src]Trait rustc_middle::middle::cstore::CrateStore

pub trait CrateStore {
    pub fn as_any(&self) -> &dyn Any;
pub fn def_key(&self, def: DefId) -> DefKey;
pub fn def_kind(&self, def: DefId) -> DefKind;
pub fn def_path(&self, def: DefId) -> DefPath;
pub fn def_path_hash(&self, def: DefId) -> DefPathHash;
pub fn all_def_path_hashes_and_def_ids(
        &self,
        cnum: CrateNum
    ) -> Vec<(DefPathHash, DefId)>;
pub fn num_def_ids(&self, cnum: CrateNum) -> usize;
pub fn crate_name_untracked(&self, cnum: CrateNum) -> Symbol;
pub fn crate_is_private_dep_untracked(&self, cnum: CrateNum) -> bool;
pub fn crate_disambiguator_untracked(
        &self,
        cnum: CrateNum
    ) -> CrateDisambiguator;
pub fn crate_hash_untracked(&self, cnum: CrateNum) -> Svh;
pub fn crates_untracked(&self) -> Vec<CrateNum>;
pub fn encode_metadata(&self, tcx: TyCtxt<'_>) -> EncodedMetadata;
pub fn metadata_encoding_version(&self) -> &[u8];
pub fn allocator_kind(&self) -> Option<AllocatorKind>; }

A store of Rust crates, through which their metadata can be accessed.

Note that this trait should probably not be expanding today. All new functionality should be driven through queries instead!

If you find a method on this trait named {name}_untracked it signifies that it's not tracked for dependency information throughout compilation (it'd break incremental compilation) and should only be called pre-HIR (e.g. during resolve)

Required methods

pub fn as_any(&self) -> &dyn Any[src]

pub fn def_key(&self, def: DefId) -> DefKey[src]

pub fn def_kind(&self, def: DefId) -> DefKind[src]

pub fn def_path(&self, def: DefId) -> DefPath[src]

pub fn def_path_hash(&self, def: DefId) -> DefPathHash[src]

pub fn all_def_path_hashes_and_def_ids(
    &self,
    cnum: CrateNum
) -> Vec<(DefPathHash, DefId)>
[src]

pub fn num_def_ids(&self, cnum: CrateNum) -> usize[src]

pub fn crate_name_untracked(&self, cnum: CrateNum) -> Symbol[src]

pub fn crate_is_private_dep_untracked(&self, cnum: CrateNum) -> bool[src]

pub fn crate_disambiguator_untracked(
    &self,
    cnum: CrateNum
) -> CrateDisambiguator
[src]

pub fn crate_hash_untracked(&self, cnum: CrateNum) -> Svh[src]

pub fn crates_untracked(&self) -> Vec<CrateNum>[src]

pub fn encode_metadata(&self, tcx: TyCtxt<'_>) -> EncodedMetadata[src]

pub fn metadata_encoding_version(&self) -> &[u8][src]

pub fn allocator_kind(&self) -> Option<AllocatorKind>[src]

Loading content...

Implementors

Loading content...