pub struct SynthFun {
pub sig: FunSig,
pub cfg: Cfg,
pub subproblem: bool,
}
Expand description
A struct that encapsulates a synthesis function’s core attributes.
It contains the sig
, which holds the function’s signature, defining the input and output types and any constraints applicable to the function.
The cfg
field represents the configuration grammar, likely detailing specific rules or patterns that govern how the function operates or is derived during synthesis.
The subproblem
field is a boolean flag indicating whether this function represents a subproblem within a larger synthesis task, potentially distinguishing it from primary synthesis functions or marking it for special processing.
Fields§
§sig: FunSig
§cfg: Cfg
§subproblem: bool
Implementations§
Source§impl SynthFun
impl SynthFun
Sourcepub fn parse(synthfun: Pair<'_, Rule>) -> Result<Self, Error>
pub fn parse(synthfun: Pair<'_, Rule>) -> Result<Self, Error>
Parses a synthfun
rule from a given input and constructs a SynthFun
instance.
Sourcepub fn lookup_nt(&self, nt: &str) -> Option<usize>
pub fn lookup_nt(&self, nt: &str) -> Option<usize>
Lookup for a non-terminal within the synthesis function’s configuration.
Sourcepub fn lookup_arg(&self, arg: &str) -> Option<usize>
pub fn lookup_arg(&self, arg: &str) -> Option<usize>
Searches for an argument name within the function signature and returns its index if found.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SynthFun
impl RefUnwindSafe for SynthFun
impl Send for SynthFun
impl Sync for SynthFun
impl Unpin for SynthFun
impl UnwindSafe for SynthFun
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<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