Enum haybale::config::Concretize
source · pub enum Concretize {
Symbolic,
Arbitrary,
Prefer(u64, Box<Concretize>),
Maximum,
Minimum,
}
Expand description
Enum used for the concretize_memcpy_lengths
option in Config
.
Variants§
Symbolic
Handle everything fully symbolically - that is, have the solver fully consider all possible values. This may lead to poor solver performance for some workloads.
Arbitrary
Pick one possible value arbitrarily. Often this may choose 0
if 0
is
a possible solution, but this behavior is not guaranteed. (To guarantee
this behavior, use Prefer(0)
.)
The value will be permanently constrained to be the chosen value (on this path), and other possibilities will not be considered.
Prefer(u64, Box<Concretize>)
Prefer the given u64
value if it is a possible value. Otherwise, fall
back on the given Concretize
strategy.
If the given u64
value is a possible value, then the value will be
permanently constrained to be that value (on this path), and other
possibilities will not be considered.
Maximum
Choose the maximum possible value. Maximum
will be interpreted in an
unsigned fashion.
The value will be permanently constrained to be this value (on this path), and other possibilities will not be considered.
Minimum
Choose the minimum possible value. Minimum
will be interpreted in an
unsigned fashion.
The value will be permanently constrained to be this value (on this path), and other possibilities will not be considered.
Trait Implementations§
source§impl Clone for Concretize
impl Clone for Concretize
source§fn clone(&self) -> Concretize
fn clone(&self) -> Concretize
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for Concretize
impl Debug for Concretize
source§impl PartialEq for Concretize
impl PartialEq for Concretize
source§fn eq(&self, other: &Concretize) -> bool
fn eq(&self, other: &Concretize) -> bool
self
and other
values to be equal, and is used
by ==
.