use alloc::borrow::ToOwned;
use alloc::boxed::Box;
use alloc::format;
use alloc::string::{String, ToString};
use alloc::vec;
use alloc::vec::Vec;
use crate::rustc_data_structures::fx::FxIndexMap;
use crate::rustc_hir::def_id::CrateNum;
use crate::rustc_index::IndexVec;
use rustc_macros::{Decodable, Encodable, StableHash};
use crate::rustc_structures::CrateType;
pub type DependencyList = IndexVec<CrateNum, Linkage>;
pub type Dependencies = FxIndexMap<CrateType, DependencyList>;
#[derive(Copy, Clone, PartialEq, Debug, StableHash, Encodable, Decodable)]
pub enum Linkage {
NotLinked,
IncludedFromDylib,
Static,
Dynamic,
}