Trait rustc_metadata::middle::cstore::CrateStore [] [src]

pub trait CrateStore {
    fn crate_data_as_rc_any(&self, krate: CrateNum) -> Rc<Any + 'static>;
    fn describe_def(&self, def: DefId) -> Option<Def>;
    fn def_span(&self, sess: &Session, def: DefId) -> Span;
    fn stability(&self, def: DefId) -> Option<Stability>;
    fn deprecation(&self, def: DefId) -> Option<Deprecation>;
    fn visibility(&self, def: DefId) -> Visibility;
    fn visible_parent_map(&'a self)
                          -> RefMut<'a, HashMap<DefId, DefId, BuildHasherDefault<FxHasher>>>; fn item_generics_cloned(&self, def: DefId) -> Generics; fn item_attrs(&self, def_id: DefId) -> Vec<Attribute>; fn fn_arg_names(&self, did: DefId) -> Vec<Symbol>; fn inherent_implementations_for_type(&self, def_id: DefId) -> Vec<DefId>; fn implementations_of_trait(&self, filter: Option<DefId>) -> Vec<DefId>; fn impl_polarity(&self, def: DefId) -> ImplPolarity; fn impl_parent(&self, impl_def_id: DefId) -> Option<DefId>; fn trait_of_item(&self, def_id: DefId) -> Option<DefId>; fn associated_item_cloned(&self, def: DefId) -> AssociatedItem; fn is_const_fn(&self, did: DefId) -> bool; fn is_default_impl(&self, impl_did: DefId) -> bool; fn is_foreign_item(&self, did: DefId) -> bool; fn is_dllimport_foreign_item(&self, def: DefId) -> bool; fn is_statically_included_foreign_item(&self, def_id: DefId) -> bool; fn is_exported_symbol(&self, def_id: DefId) -> bool; fn dylib_dependency_formats(&self,
                                cnum: CrateNum)
                                -> Vec<(CrateNum, LinkagePreference)>; fn dep_kind(&self, cnum: CrateNum) -> DepKind; fn export_macros(&self, cnum: CrateNum); fn lang_items(&self, cnum: CrateNum) -> Vec<(DefIndex, usize)>; fn missing_lang_items(&self, cnum: CrateNum) -> Vec<LangItem>; fn is_staged_api(&self, cnum: CrateNum) -> bool; fn is_allocator(&self, cnum: CrateNum) -> bool; fn is_panic_runtime(&self, cnum: CrateNum) -> bool; fn is_compiler_builtins(&self, cnum: CrateNum) -> bool; fn is_sanitizer_runtime(&self, cnum: CrateNum) -> bool; fn panic_strategy(&self, cnum: CrateNum) -> PanicStrategy; fn extern_crate(&self, cnum: CrateNum) -> Option<ExternCrate>; fn crate_name(&self, cnum: CrateNum) -> Symbol; fn original_crate_name(&self, cnum: CrateNum) -> Symbol; fn crate_hash(&self, cnum: CrateNum) -> Svh; fn crate_disambiguator(&self, cnum: CrateNum) -> Symbol; fn plugin_registrar_fn(&self, cnum: CrateNum) -> Option<DefId>; fn derive_registrar_fn(&self, cnum: CrateNum) -> Option<DefId>; fn native_libraries(&self, cnum: CrateNum) -> Vec<NativeLibrary>; fn exported_symbols(&self, cnum: CrateNum) -> Vec<DefId>; fn is_no_builtins(&self, cnum: CrateNum) -> bool; fn retrace_path(&self,
                    cnum: CrateNum,
                    path_data: &[DisambiguatedDefPathData])
                    -> Option<DefId>; fn def_key(&self, def: DefId) -> DefKey; fn def_path(&self, def: DefId) -> DefPath; fn struct_field_names(&self, def: DefId) -> Vec<Symbol>; fn item_children(&self, did: DefId) -> Vec<Export>; fn load_macro(&self, did: DefId, sess: &Session) -> LoadedMacro; fn maybe_get_item_body(&self,
                           tcx: TyCtxt<'a, 'tcx, 'tcx>,
                           def: DefId)
                           -> Option<&'tcx Body>; fn item_body_nested_bodies(&self, def: DefId) -> BTreeMap<BodyId, Body>; fn const_is_rvalue_promotable_to_static(&self, def: DefId) -> bool; fn is_item_mir_available(&self, def: DefId) -> bool; fn crates(&self) -> Vec<CrateNum>; fn used_libraries(&self) -> Vec<NativeLibrary>; fn used_link_args(&self) -> Vec<String>; fn metadata_filename(&self) -> &str; fn metadata_section_name(&self, target: &Target) -> &str; fn used_crates(&self,
                   prefer: LinkagePreference)
                   -> Vec<(CrateNum, LibSource)>; fn used_crate_source(&self, cnum: CrateNum) -> CrateSource; fn extern_mod_stmt_cnum(&self, emod_id: NodeId) -> Option<CrateNum>; fn encode_metadata(&self,
                       tcx: TyCtxt<'a, 'tcx, 'tcx>,
                       reexports: &HashMap<NodeId, Vec<Export>, BuildHasherDefault<FxHasher>>,
                       link_meta: &LinkMeta,
                       reachable: &HashSet<NodeId, BuildHasherDefault<FxHasher>>)
                       -> Vec<u8>; fn metadata_encoding_version(&self) -> &[u8]; }
🔬 This is a nightly-only experimental API. (rustc_private)

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

Required Methods

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

The name of the crate as it is referred to in source code of the current crate.

🔬 This is a nightly-only experimental API. (rustc_private)

The name of the crate as it is stored in the crate's metadata.

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)
🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

Implementors