DFGLocationQuery

Trait DFGLocationQuery 

Source
pub trait DFGLocationQuery<V: Value, A: Arch + ValueLocations>
where Self: Sized,
{ type Indirect: IndirectQuery<V>; // Required methods fn read_loc(&self, loc: A::Location) -> V; fn indirect_loc(&self, loc: A::Location) -> Self::Indirect; // Provided methods fn read<T: ToDFGLoc<A::Location>>(&self, loc: &T) -> V { ... } fn indirect<T: ToDFGLoc<A::Location>>(&self, loc: &T) -> Self::Indirect { ... } }
Expand description

it’s relatively common to want to query a dfg at one address, for multiple values/read-write accesses. DFGLocationQuery is essentially a helper to curry a specific address for future queries.

Required Associated Types§

Required Methods§

Source

fn read_loc(&self, loc: A::Location) -> V

Source

fn indirect_loc(&self, loc: A::Location) -> Self::Indirect

Provided Methods§

Source

fn read<T: ToDFGLoc<A::Location>>(&self, loc: &T) -> V

Source

fn indirect<T: ToDFGLoc<A::Location>>(&self, loc: &T) -> Self::Indirect

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'dfg, K: Copy, V: Value, A: Arch + ValueLocations, D: DFG<V, A, K> + ?Sized> DFGLocationQuery<V, A> for DFGLocationQueryCursor<'dfg, K, V, A, D>

Source§

type Indirect = <D as DFG<V, A, K>>::Indirect

Source§

impl<'dfg, K: Copy, V: Value, A: Arch + ValueLocations, D: DFG<V, A, K> + ?Sized> DFGLocationQuery<V, A> for DFGLocationQueryCursorMut<'dfg, K, V, A, D>

Source§

type Indirect = <D as DFG<V, A, K>>::Indirect