29 lines
984 B
Rust
29 lines
984 B
Rust
//! 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<Linkage>;
|
|
|
|
/// 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,
|
|
}
|