pub struct StrDeducer {
pub nt: usize,
pub split_once: (usize, usize),
pub join: (usize, usize),
pub ite_concat: (usize, usize),
pub index: (usize, usize),
pub formatter: Vec<(Op1Enum, usize)>,
pub decay_rate: usize,
}
Expand description
A struct hold configuration for string deduction tasks.
Fields§
§nt: usize
The non-terminal identifier of this deducer.
split_once: (usize, usize)
(No longer used, non-terminal to split to)
join: (usize, usize)
(No longer used, non-terminal to split to)
ite_concat: (usize, usize)
(No longer used, non-terminal to split to)
index: (usize, usize)
§formatter: Vec<(Op1Enum, usize)>
Formatting operations to be applied during deduction, (operator, non-terminal to format to).
decay_rate: usize
No longer used
Implementations§
Source§impl StrDeducer
impl StrDeducer
Source§impl StrDeducer
impl StrDeducer
Sourcefn split1(
&'static self,
exec: &'static Executor,
prob: Problem,
delimiter: Value,
) -> Option<JoinHandle<&'static Expr>>
fn split1( &'static self, exec: &'static Executor, prob: Problem, delimiter: Value, ) -> Option<JoinHandle<&'static Expr>>
Deduce a string splitting by a specified delimiter.
Sourcepub async fn generate_condition(
&'static self,
exec: &'static Executor,
prob: Problem,
result: &'static Expr,
) -> &'static Expr
pub async fn generate_condition( &'static self, exec: &'static Executor, prob: Problem, result: &'static Expr, ) -> &'static Expr
Generates a conditional expression
Sourcepub fn ite_concat(
&'static self,
exec: &'static Executor,
prob: Problem,
prefix: Value,
) -> Option<JoinHandle<&'static Expr>>
pub fn ite_concat( &'static self, exec: &'static Executor, prob: Problem, prefix: Value, ) -> Option<JoinHandle<&'static Expr>>
Deduce conditional concatenation deduction for string synthesis problems.
pub fn index( &'static self, exec: &'static Executor, prob: Problem, list: Value, ) -> Option<JoinHandle<&'static Expr>>
Sourcefn join(
&'static self,
exec: &'static Executor,
prob: Problem,
delimiter: Value,
) -> Option<JoinHandle<&'static Expr>>
fn join( &'static self, exec: &'static Executor, prob: Problem, delimiter: Value, ) -> Option<JoinHandle<&'static Expr>>
Deduce a string joining operation based on a specified delimiter.
Sourcefn join_empty_str(
&'static self,
exec: &'static Executor,
prob: Problem,
) -> Option<JoinHandle<&'static Expr>>
fn join_empty_str( &'static self, exec: &'static Executor, prob: Problem, ) -> Option<JoinHandle<&'static Expr>>
Deduce to list of strings using join
Trait Implementations§
Source§impl Debug for StrDeducer
impl Debug for StrDeducer
Auto Trait Implementations§
impl Freeze for StrDeducer
impl RefUnwindSafe for StrDeducer
impl Send for StrDeducer
impl Sync for StrDeducer
impl Unpin for StrDeducer
impl UnwindSafe for StrDeducer
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> 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