Struct Access

Source
pub struct Access<'a> {
    pub solutions: &'a [Solution],
    pub index: usize,
    pub mutable_keys: &'a HashSet<&'a [Word]>,
}
Expand description

All necessary solution access required to check an individual predicate.

Fields§

§solutions: &'a [Solution]

The set of input data for each predicate being solved within the solution set.

We require all solutions in order to handle checking predicate exists.

§index: usize

Checking is performed for one solution at a time. This index refers to the checked predicate’s associated solution within the SolutionSet slice.

§mutable_keys: &'a HashSet<&'a [Word]>

The keys being proposed for mutation for the predicate.

Implementations§

Source§

impl<'a> Access<'a>

Source

pub fn new( set: &'a SolutionSet, solution_index: SolutionIndex, mutable_keys: &'a HashSet<&[Word]>, ) -> Self

A shorthand for constructing a SolutionAccess instance for checking the predicate at the given index within the given solution.

This constructor assumes that the given mutable keys contract is correct for this solution. It is not checked by this function for performance.

Source

pub fn this_solution(&self) -> &Solution

The solution associated with the predicate currently being checked.

Panics in the case that self.index is out of range of the self.solutions slice.

Trait Implementations§

Source§

impl<'a> Clone for Access<'a>

Source§

fn clone(&self) -> Access<'a>

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<'a> Debug for Access<'a>

Source§

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

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

impl<'a> Copy for Access<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for Access<'a>

§

impl<'a> RefUnwindSafe for Access<'a>

§

impl<'a> Send for Access<'a>

§

impl<'a> Sync for Access<'a>

§

impl<'a> Unpin for Access<'a>

§

impl<'a> UnwindSafe for Access<'a>

Blanket Implementations§

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<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> Same for T

Source§

type Output = T

Should always be Self
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, 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.