pub struct StringAbstraction<'a, T: AbstractDomain + DomainInsertion + HasTop + Eq + From<String>> { /* private fields */ }
Expand description

A wrapper struct for the string abstraction computation object.

Implementations§

source§

impl<'a, T: AbstractDomain + DomainInsertion + HasTop + Eq + From<String>> StringAbstraction<'a, T>

source

pub fn new( project: &'a Project, control_flow_graph: &'a Graph<'a>, pointer_inference_results: &'a PointerInferenceComputation<'a>, config: Config ) -> StringAbstraction<'a, T>

Generate a new string abstraction computation for a project.

source

pub fn compute(&mut self)

Compute the fixpoint of the string abstraction analysis. Has a max_steps bound for the fixpoint algorithm to prevent infinite loops.

source

pub fn get_computation( &self ) -> &Computation<GeneralizedContext<'a, Context<'a, T>>>

Get the string abstraction computation.

source

pub fn get_graph(&self) -> &Graph<'_>

Get the underlying graph of the computation.

source

pub fn get_context(&self) -> &Context<'a, T>

Get the context object of the computation.

source

pub fn get_node_value(&self, node_id: NodeIndex) -> Option<&NodeValue<State<T>>>

Get the value associated to a node in the computed fixpoint (or intermediate state of the algorithm if the fixpoint has not been reached yet). Returns None if no value is associated to the Node.

Auto Trait Implementations§

§

impl<'a, T> RefUnwindSafe for StringAbstraction<'a, T>
where T: RefUnwindSafe,

§

impl<'a, T> Send for StringAbstraction<'a, T>
where T: Send,

§

impl<'a, T> Sync for StringAbstraction<'a, T>
where T: Sync,

§

impl<'a, T> Unpin for StringAbstraction<'a, T>
where T: Unpin,

§

impl<'a, T> UnwindSafe for StringAbstraction<'a, T>
where T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.