//! Type definitions for learning about the dependency formats of all upstream //! crates (rlibs/dylibs/oh my). //! //! For all the gory details, see the provider of the `dependency_formats` //! query. // FIXME: move this file to rustc_metadata::dependency_format, but // this will introduce circular dependency between rustc_metadata and rustc_middle use rustc_data_structures::fx::FxIndexMap; use rustc_hir::def_id::CrateNum; use rustc_index::IndexVec; use rustc_macros::{Decodable, Encodable, HashStable}; use rustc_session::config::CrateType; /// A list of dependencies for a certain crate type. pub type DependencyList = IndexVec; /// A mapping of all required dependencies for a particular flavor of output. /// /// This is local to the tcx, and is generally relevant to one session. pub type Dependencies = FxIndexMap; #[derive(Copy, Clone, PartialEq, Debug, HashStable, Encodable, Decodable)] pub enum Linkage { NotLinked, IncludedFromDylib, Static, Dynamic, }