[−][src]Struct varisat_checker::context::Context
Central checker data structure.
This struct contains all data kept by the checker. Most functions operating on multiple fields
of the context use partial references provided by the partial_ref
crate. This documents the
data dependencies and makes the borrow checker happy without the overhead of passing individual
references.
Fields
checker_state: CheckerState
clause_hasher: ClauseHasher
clauses: Clauses
processing: Processing<'a>
rup_check: RupCheck
tmp_data: TmpData
variables: Variables
Trait Implementations
impl<'a> Default for Context<'a>
[src]
impl<'a> PartialRefTarget for Context<'a>
[src]
type RawTarget = Self
A partial reference will be represented by a pointer to this associated type. Read more
impl<'a1, 'a> IntoPartialRef<'a1> for &'a1 Context<'a>
[src]
type Ref = Const<VariablesP, Const<TmpDataP, Const<RupCheckP, Const<ProcessingP<'a>, Const<ClausesP, Const<ClauseHasherP, Const<CheckerStateP, Ref<'a1, Context<'a>>>>>>>>>
fn into_partial_ref(self) -> Self::Ref
[src]
impl<'a1, 'a> IntoPartialRef<'a1> for &'a1 mut Context<'a>
[src]
type Ref = Mut<VariablesP, Mut<TmpDataP, Mut<RupCheckP, Mut<ProcessingP<'a>, Mut<ClausesP, Mut<ClauseHasherP, Mut<CheckerStateP, Ref<'a1, Context<'a>>>>>>>>>
fn into_partial_ref(self) -> Self::Ref
[src]
impl<'a1, 'a, ContainingPart, Reference> SplitIntoParts<'a1, ContainingPart, Reference> for Context<'a> where
ContainingPart: Part<PartType = Field<Self>>,
Reference: PartialRef<'a1>,
Reference::Target: HasPart<ContainingPart>,
[src]
ContainingPart: Part<PartType = Field<Self>>,
Reference: PartialRef<'a1>,
Reference::Target: HasPart<ContainingPart>,
type Result = Const<Nested<ContainingPart, VariablesP>, Const<Nested<ContainingPart, TmpDataP>, Const<Nested<ContainingPart, RupCheckP>, Const<Nested<ContainingPart, ProcessingP<'a>>, Const<Nested<ContainingPart, ClausesP>, Const<Nested<ContainingPart, ClauseHasherP>, Const<Nested<ContainingPart, CheckerStateP>, Reference>>>>>>>
A partial reference that has all the parts Reference
and all parts of Self
nested in ContainingPart
as constant parts. Read more
type ResultMut = Mut<Nested<ContainingPart, VariablesP>, Mut<Nested<ContainingPart, TmpDataP>, Mut<Nested<ContainingPart, RupCheckP>, Mut<Nested<ContainingPart, ProcessingP<'a>>, Mut<Nested<ContainingPart, ClausesP>, Mut<Nested<ContainingPart, ClauseHasherP>, Mut<Nested<ContainingPart, CheckerStateP>, Reference>>>>>>>
A partial reference that has all the parts Reference
and all parts of Self
nested in ContainingPart
as mutable parts. Read more
impl<'a> HasPart<CheckerStateP> for Context<'a>
[src]
unsafe fn part_ptr(
ptr: *const Self
) -> <<CheckerStateP as Part>::PartType as PartType>::Ptr
[src]
ptr: *const Self
) -> <<CheckerStateP as Part>::PartType as PartType>::Ptr
unsafe fn part_ptr_mut(
ptr: *mut Self
) -> <<CheckerStateP as Part>::PartType as PartType>::PtrMut
[src]
ptr: *mut Self
) -> <<CheckerStateP as Part>::PartType as PartType>::PtrMut
impl<'a> HasPart<ClauseHasherP> for Context<'a>
[src]
unsafe fn part_ptr(
ptr: *const Self
) -> <<ClauseHasherP as Part>::PartType as PartType>::Ptr
[src]
ptr: *const Self
) -> <<ClauseHasherP as Part>::PartType as PartType>::Ptr
unsafe fn part_ptr_mut(
ptr: *mut Self
) -> <<ClauseHasherP as Part>::PartType as PartType>::PtrMut
[src]
ptr: *mut Self
) -> <<ClauseHasherP as Part>::PartType as PartType>::PtrMut
impl<'a> HasPart<ClausesP> for Context<'a>
[src]
unsafe fn part_ptr(
ptr: *const Self
) -> <<ClausesP as Part>::PartType as PartType>::Ptr
[src]
ptr: *const Self
) -> <<ClausesP as Part>::PartType as PartType>::Ptr
unsafe fn part_ptr_mut(
ptr: *mut Self
) -> <<ClausesP as Part>::PartType as PartType>::PtrMut
[src]
ptr: *mut Self
) -> <<ClausesP as Part>::PartType as PartType>::PtrMut
impl<'a> HasPart<ProcessingP<'a>> for Context<'a>
[src]
unsafe fn part_ptr(
ptr: *const Self
) -> <<ProcessingP<'a> as Part>::PartType as PartType>::Ptr
[src]
ptr: *const Self
) -> <<ProcessingP<'a> as Part>::PartType as PartType>::Ptr
unsafe fn part_ptr_mut(
ptr: *mut Self
) -> <<ProcessingP<'a> as Part>::PartType as PartType>::PtrMut
[src]
ptr: *mut Self
) -> <<ProcessingP<'a> as Part>::PartType as PartType>::PtrMut
impl<'a> HasPart<RupCheckP> for Context<'a>
[src]
unsafe fn part_ptr(
ptr: *const Self
) -> <<RupCheckP as Part>::PartType as PartType>::Ptr
[src]
ptr: *const Self
) -> <<RupCheckP as Part>::PartType as PartType>::Ptr
unsafe fn part_ptr_mut(
ptr: *mut Self
) -> <<RupCheckP as Part>::PartType as PartType>::PtrMut
[src]
ptr: *mut Self
) -> <<RupCheckP as Part>::PartType as PartType>::PtrMut
impl<'a> HasPart<TmpDataP> for Context<'a>
[src]
unsafe fn part_ptr(
ptr: *const Self
) -> <<TmpDataP as Part>::PartType as PartType>::Ptr
[src]
ptr: *const Self
) -> <<TmpDataP as Part>::PartType as PartType>::Ptr
unsafe fn part_ptr_mut(
ptr: *mut Self
) -> <<TmpDataP as Part>::PartType as PartType>::PtrMut
[src]
ptr: *mut Self
) -> <<TmpDataP as Part>::PartType as PartType>::PtrMut
impl<'a> HasPart<VariablesP> for Context<'a>
[src]
unsafe fn part_ptr(
ptr: *const Self
) -> <<VariablesP as Part>::PartType as PartType>::Ptr
[src]
ptr: *const Self
) -> <<VariablesP as Part>::PartType as PartType>::Ptr
unsafe fn part_ptr_mut(
ptr: *mut Self
) -> <<VariablesP as Part>::PartType as PartType>::PtrMut
[src]
ptr: *mut Self
) -> <<VariablesP as Part>::PartType as PartType>::PtrMut
Auto Trait Implementations
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<Reference, Outer, OuterFieldType, Inner> HasPart<Nested<Outer, Inner>> for Reference where
Inner: Part,
Outer: Part<PartType = Field<OuterFieldType>>,
OuterFieldType: HasPart<Inner, RawTarget = OuterFieldType> + PartialRefTarget + ?Sized,
Reference: HasPart<Outer> + ?Sized,
Inner: Part,
Outer: Part<PartType = Field<OuterFieldType>>,
OuterFieldType: HasPart<Inner, RawTarget = OuterFieldType> + PartialRefTarget + ?Sized,
Reference: HasPart<Outer> + ?Sized,
unsafe fn part_ptr(
ptr: *const <Reference as PartialRefTarget>::RawTarget
) -> <<Inner as Part>::PartType as PartType>::Ptr
ptr: *const <Reference as PartialRefTarget>::RawTarget
) -> <<Inner as Part>::PartType as PartType>::Ptr
unsafe fn part_ptr_mut(
ptr: *mut <Reference as PartialRefTarget>::RawTarget
) -> <<Inner as Part>::PartType as PartType>::PtrMut
ptr: *mut <Reference as PartialRefTarget>::RawTarget
) -> <<Inner as Part>::PartType as PartType>::PtrMut