//! 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. use rustc_session::config::CrateType; /// A list of dependencies for a certain crate type. /// /// The length of this vector is the same as the number of external crates used. /// The value is None if the crate does not need to be linked (it was found /// statically in another dylib), or Some(kind) if it needs to be linked as /// `kind` (either static or dynamic). pub type DependencyList = Vec; /// 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 = Vec<(CrateType, DependencyList)>; #[derive(Copy, Clone, PartialEq, Debug, HashStable, Encodable, Decodable)] pub enum Linkage { NotLinked, IncludedFromDylib, Static, Dynamic, }