Struct paralegal_spdg::ProgramDescription
source · pub struct ProgramDescription {
pub controllers: ControllerMap,
pub type_info: TypeInfoMap,
pub instruction_info: HashMap<GlobalLocation, InstructionInfo>,
pub def_info: HashMap<DefId, DefInfo>,
pub marker_annotation_count: u32,
pub rustc_time: Duration,
pub dedup_functions: u32,
pub dedup_locs: u32,
pub seen_functions: u32,
pub seen_locs: u32,
/* private fields */
}
Expand description
The annotated program dependence graph.
Fields§
§controllers: ControllerMap
Entry points we analyzed and their PDGs
type_info: TypeInfoMap
Metadata about types
instruction_info: HashMap<GlobalLocation, InstructionInfo>
Metadata about the instructions that are executed at all program locations we know about.
def_info: HashMap<DefId, DefInfo>
Metadata about the DefId
s
marker_annotation_count: u32
How many marker annotations were found
rustc_time: Duration
How long rustc ran before out plugin executed
dedup_functions: u32
The number of functions we produced a PDG for
dedup_locs: u32
The lines of code corresponding to the functions from
Self::dedup_functions
.
seen_functions: u32
The number of functions we produced PDGs for or we inspected to check for markers.
seen_locs: u32
The lines of code corresponding to the functions from
Self::seen_functions
. This is the sum of all
analyzed_locs
of the controllers but deduplicated.
Implementations§
source§impl ProgramDescription
impl ProgramDescription
sourcepub fn all_nodes(&self) -> HashSet<GlobalNode>
pub fn all_nodes(&self) -> HashSet<GlobalNode>
Gather all data sources that are mentioned in this program description.
Essentially just self.controllers.flat_map(|c| c.keys())
sourcepub fn all_call_sites(&self) -> HashSet<CallString>
pub fn all_call_sites(&self) -> HashSet<CallString>
Gather all CallString
s that are mentioned in this program description.