use crate::finding::UnsafeSiteFact;
use crate::resolve::{AliasMap, ExternRenameMap, ReexportMap, UseMap};
use std::collections::HashSet;
use std::path::PathBuf;
pub(crate) struct ImplSite {
pub(crate) module: String,
pub(crate) file: PathBuf,
pub(crate) trait_path: syn::Path,
pub(crate) self_ty: syn::Type,
pub(crate) uses: UseMap,
pub(crate) type_params: HashSet<String>,
}
pub(crate) struct TypeDef {
pub(crate) canonical: String,
pub(crate) module: String,
pub(crate) file: PathBuf,
pub(crate) derives: Vec<syn::Path>,
pub(crate) uses: UseMap,
}
pub(crate) struct CrateScan {
pub(crate) reexports: ReexportMap,
pub(crate) aliases: AliasMap,
pub(crate) extern_renames: ExternRenameMap,
pub(crate) trait_defs: HashSet<String>,
pub(crate) impls: Vec<ImplSite>,
pub(crate) type_defs: Vec<TypeDef>,
pub(crate) alias_targets: AliasMap,
}
pub(crate) struct UnsafeSite {
pub(crate) module: String,
pub(crate) file: PathBuf,
pub(crate) site: UnsafeSiteFact,
}