Struct Ite

Source
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

Source

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.

Source

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 Clone for Ite

Source§

fn clone(&self) -> Ite

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Ite

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Ite

Source§

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

Source§

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

Source§

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.

Source§

impl From<Ite> for Op3Enum

Source§

fn from(v: Ite) -> Op3Enum

Converts to this type from the input type.
Source§

impl Hash for Ite

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Op3 for Ite

Source§

fn cost(&self) -> usize

Source§

fn try_eval(&self, a1: Value, a2: Value, a3: Value) -> (bool, Value)

Source§

impl PartialEq for Ite

Source§

fn eq(&self, other: &Ite) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl TryInto<Ite> for Op3Enum

Source§

type Error = &'static str

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

fn try_into(self) -> Result<Ite, <Self as TryInto<Ite>>::Error>

Performs the conversion.
Source§

impl Copy for Ite

Source§

impl Eq for Ite

Source§

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

Source§

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

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> 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

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

Source§

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>,

Source§

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V