pub struct InversionResponse {
pub solutions: Vec<Solution>,
pub domains: Vec<HashMap<FactPath, Domain>>,
pub undetermined_facts: Vec<FactPath>,
pub is_determined: bool,
}Expand description
Response from inversion containing all valid solutions
Fields§
§solutions: Vec<Solution>All valid solutions
domains: Vec<HashMap<FactPath, Domain>>Domain constraints for each solution (indexed by solution index)
undetermined_facts: Vec<FactPath>Facts that still need values (appear in conditions but aren’t fully constrained)
is_determined: boolTrue if all facts are fully constrained to specific values
Implementations§
Source§impl InversionResponse
impl InversionResponse
Sourcepub fn new(
solutions: Vec<Solution>,
domains: Vec<HashMap<FactPath, Domain>>,
) -> Self
pub fn new( solutions: Vec<Solution>, domains: Vec<HashMap<FactPath, Domain>>, ) -> Self
Create a new inversion response, computing metadata from solutions and domains
Sourcepub fn iter(
&self,
) -> impl Iterator<Item = (&Solution, &HashMap<FactPath, Domain>)>
pub fn iter( &self, ) -> impl Iterator<Item = (&Solution, &HashMap<FactPath, Domain>)>
Iterate over solutions with their domains
Sourcepub fn free_variables(&self) -> &[FactPath]
pub fn free_variables(&self) -> &[FactPath]
Alias for undetermined_facts (backwards compatibility)
Sourcepub fn is_fully_constrained(&self) -> bool
pub fn is_fully_constrained(&self) -> bool
Alias for is_determined (backwards compatibility)
Trait Implementations§
Source§impl Clone for InversionResponse
impl Clone for InversionResponse
Source§fn clone(&self) -> InversionResponse
fn clone(&self) -> InversionResponse
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for InversionResponse
impl Debug for InversionResponse
Auto Trait Implementations§
impl Freeze for InversionResponse
impl RefUnwindSafe for InversionResponse
impl Send for InversionResponse
impl Sync for InversionResponse
impl Unpin for InversionResponse
impl UnwindSafe for InversionResponse
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
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>
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 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>
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