pub struct ProgramDescription {
pub controllers: ControllerMap,
pub type_info: TypeInfoMap,
pub instruction_info: HashMap<GlobalLocation, InstructionInfo>,
pub def_info: HashMap<DefId, DefInfo>,
/* private fields */
}Expand description
The annotated program dependence graph.
Fields§
§controllers: ControllerMapEntry points we analyzed and their PDGs
type_info: TypeInfoMapMetadata 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 DefIds
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 CallStrings that are mentioned in this program description.
Trait Implementations§
Source§impl Allocative for ProgramDescription
impl Allocative for ProgramDescription
Source§impl Debug for ProgramDescription
impl Debug for ProgramDescription
Source§impl<'de> Deserialize<'de> for ProgramDescription
impl<'de> Deserialize<'de> for ProgramDescription
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ProgramDescription
impl RefUnwindSafe for ProgramDescription
impl Send for ProgramDescription
impl Sync for ProgramDescription
impl Unpin for ProgramDescription
impl UnwindSafe for ProgramDescription
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more