Trait yaxpeax_core::analyses::IndirectQuery [−][src]
pub trait IndirectQuery<V> {
fn load(&self, _address: ValueIndex<'_, V>) -> V;
fn store(&self, _address: ValueIndex<'_, V>, _value: &V);
fn try_get_load(&self, _address: ValueIndex<'_, V>) -> Option<V>;
fn try_get_store(&self, _address: ValueIndex<'_, V>) -> Option<()>;
}
Required methods
fn load(&self, _address: ValueIndex<'_, V>) -> V
fn load(&self, _address: ValueIndex<'_, V>) -> V
attempt to load address
indirectly through this value, indexed by address
.
panics
- if
self
does not represent a value that can be indexed. for example, the value backing a register can probably not be indexed. the value backing main memory probably can be indexed.
fn store(&self, _address: ValueIndex<'_, V>, _value: &V)
fn store(&self, _address: ValueIndex<'_, V>, _value: &V)
attempt to load address
indirectly through this value, indexed by address
.
panics
- if
self
does not represent a value that can be indexed. for example, the value backing a register can probably not be indexed. the value backing main memory probably can be indexed.
fn try_get_load(&self, _address: ValueIndex<'_, V>) -> Option<V>
fn try_get_load(&self, _address: ValueIndex<'_, V>) -> Option<V>
check if address
is a load known to this query cursor. get the referenced value if so,
None
if not.
panics
- if
self
does not represent a value that can be indexed. for example, the value backing a register can probably not be indexed. the value backing main memory probably can be indexed.
fn try_get_store(&self, _address: ValueIndex<'_, V>) -> Option<()>
fn try_get_store(&self, _address: ValueIndex<'_, V>) -> Option<()>
check if address
is a store known to this query cursor. Some(())
if it is, None
if not.
panics
- if
self
does not represent a value that can be indexed. for example, the value backing a register can probably not be indexed. the value backing main memory probably can be indexed.