pub struct Ite(pub usize, pub bool);
Expand description
A structured data representation used to denote a conditional expression with two components.
The first component is a usize
, which can be used to reference an index or identifier within a specific context.
The second component is a bool
, which typically serves as a condition to determine the control flow within an algorithm.
This structure could be utilized in scenarios where conditional logic plays a role in decision-making processes, enabling elegant integration with indexed data or scenarios.
Tuple Fields§
§0: usize
§1: bool
Implementations§
Source§impl Ite
impl Ite
Sourcepub fn from_config(config: &Config) -> Self
pub fn from_config(config: &Config) -> Self
Creates an instance of Ite
from a provided Config
object.
It initializes the Ite
with a usize
value extracted from the configuration under the key "cost"
, defaulting to 1
if not present, and a bool
value under the key "enum"
, defaulting to false
.
This method allows the flexible creation of Ite
structures based on configuration settings, facilitating custom behavior in synthesis tasks where conditional logic representations are used.
Sourcepub fn name() -> &'static str
pub fn name() -> &'static str
The method returns the static string “ite”, which signifies the name of the operation represented by the struct. This simple function provides a way to retrieve the identifier for instances of the struct, likely correlating with its function or behavior within the string synthesis framework.
Trait Implementations§
Source§impl Default for Ite
impl Default for Ite
Source§fn default() -> Self
fn default() -> Self
Provides a method that constructs a default instance.
This method utilizes another function, from_config
, by supplying it with a default configuration, retrieved from Rust’s standard Default
trait.
This default instance serves as a baseline configuration, which can then be adjusted as necessary for specific string synthesis tasks.
The implementation underlines its utility by abstracting away the initial setup process, promoting a more streamlined use of the type within the module.
Source§impl Display for Ite
impl Display for Ite
Source§fn fmt(&self, f: &mut Formatter<'_>) -> Result
fn fmt(&self, f: &mut Formatter<'_>) -> Result
Formats the Ite
type for display.
The method implements custom formatting logic by invoking the name
method of the Ite
type and formatting its result.
This enables Ite
instances to be displayed as strings according to their name representation, integrating seamlessly with Rust’s formatting mechanisms.
Source§impl Enumerator3 for Ite
impl Enumerator3 for Ite
Source§fn enumerate(
&self,
this: &'static Op3Enum,
exec: &'static Executor,
nt: [usize; 3],
) -> Result<(), ()>
fn enumerate( &self, this: &'static Op3Enum, exec: &'static Executor, nt: [usize; 3], ) -> Result<(), ()>
Enumerates possible expressions using a three-way conditional operator based on available execution data and constraints.
This method first checks a flag and ensures there is sufficient size in the Executor
before proceeding.
It iterates over all combinations of expressions and values from specified non-terminal indices, nt
, ensuring that their combined size is within allowable limits determined by a threshold based on the current execution size minus the expression’s cost.
For each valid combination, it constructs a ternary expression using the provided Op3Enum
instance as the operator and evaluates it.
When evaluation succeeds, the expression and its resultant value are processed further via the Executor
.
The method returns a Result<(), ()>
to indicate completion or failure without a specific error.
impl Copy for Ite
impl Eq for Ite
impl StructuralPartialEq for Ite
Auto Trait Implementations§
impl Freeze for Ite
impl RefUnwindSafe for Ite
impl Send for Ite
impl Sync for Ite
impl Unpin for Ite
impl UnwindSafe for Ite
Blanket Implementations§
Source§impl<T> AllocForAny<T> for T
impl<T> AllocForAny<T> for T
Source§fn galloc(self) -> &'static T
fn galloc(self) -> &'static T
Provides a method to allocate an instance of T
on the heap with a static lifetime.
This implementation of galloc
takes ownership of the T
instance and uses the alloc
function to place it in a location with a static lifetime, presumably managing it in a way that ensures its persistence for the duration of the program.
This can be particularly useful for scenarios where a static lifetime is required, such as when interfacing with systems or patterns that necessitate global state or long-lived data.
Source§fn galloc_mut(self) -> &'static T
fn galloc_mut(self) -> &'static T
Provides a method that moves the instance and returns a reference to it allocated with a static lifetime.
This method utilizes alloc_mut
to perform the allocation, likely involving allocating the resource in a manner that ensures it lives for the entire duration of the application.
These semantics allow the user to safely assume that the reference will not expire during the program’s execution, making it suitable for long-lived data structures or operations that require such guarantees.
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.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>
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>
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