[][src]Struct varisat::context::Context

pub struct Context<'a> {
    pub analyze_conflict: AnalyzeConflict,
    pub assignment: Assignment,
    pub binary_clauses: BinaryClauses,
    pub clause_activity: ClauseActivity,
    pub clause_alloc: ClauseAlloc,
    pub clause_db: ClauseDb,
    pub impl_graph: ImplGraph,
    pub assumptions: Assumptions,
    pub model: Model,
    pub proof: Proof<'a>,
    pub schedule: Schedule,
    pub solver_config: SolverConfig,
    pub solver_state: SolverState,
    pub tmp_data: TmpData,
    pub tmp_flags: TmpFlags,
    pub trail: Trail,
    pub variables: Variables,
    pub vsids: Vsids,
    pub watchlists: Watchlists,
}

Central solver data structure.

This struct contains all data kept by the solver. 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

analyze_conflict: AnalyzeConflictassignment: Assignmentbinary_clauses: BinaryClausesclause_activity: ClauseActivityclause_alloc: ClauseAllocclause_db: ClauseDbimpl_graph: ImplGraphassumptions: Assumptionsmodel: Modelproof: Proof<'a>schedule: Schedulesolver_config: SolverConfigsolver_state: SolverStatetmp_data: TmpDatatmp_flags: TmpFlagstrail: Trailvariables: Variablesvsids: Vsidswatchlists: Watchlists

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<WatchlistsP, Const<VsidsP, Const<VariablesP, Const<TrailP, Const<TmpFlagsP, Const<TmpDataP, Const<SolverStateP, Const<SolverConfigP, Const<ScheduleP, Const<ProofP<'a>, Const<ModelP, Const<AssumptionsP, Const<ImplGraphP, Const<ClauseDbP, Const<ClauseAllocP, Const<ClauseActivityP, Const<BinaryClausesP, Const<AssignmentP, Const<AnalyzeConflictP, Ref<'a1, Context<'a>>>>>>>>>>>>>>>>>>>>>

impl<'a1, 'a> IntoPartialRef<'a1> for &'a1 mut Context<'a>[src]

type Ref = Mut<WatchlistsP, Mut<VsidsP, Mut<VariablesP, Mut<TrailP, Mut<TmpFlagsP, Mut<TmpDataP, Mut<SolverStateP, Mut<SolverConfigP, Mut<ScheduleP, Mut<ProofP<'a>, Mut<ModelP, Mut<AssumptionsP, Mut<ImplGraphP, Mut<ClauseDbP, Mut<ClauseAllocP, Mut<ClauseActivityP, Mut<BinaryClausesP, Mut<AssignmentP, Mut<AnalyzeConflictP, Ref<'a1, Context<'a>>>>>>>>>>>>>>>>>>>>>

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]

type Result = Const<Nested<ContainingPart, WatchlistsP>, Const<Nested<ContainingPart, VsidsP>, Const<Nested<ContainingPart, VariablesP>, Const<Nested<ContainingPart, TrailP>, Const<Nested<ContainingPart, TmpFlagsP>, Const<Nested<ContainingPart, TmpDataP>, Const<Nested<ContainingPart, SolverStateP>, Const<Nested<ContainingPart, SolverConfigP>, Const<Nested<ContainingPart, ScheduleP>, Const<Nested<ContainingPart, ProofP<'a>>, Const<Nested<ContainingPart, ModelP>, Const<Nested<ContainingPart, AssumptionsP>, Const<Nested<ContainingPart, ImplGraphP>, Const<Nested<ContainingPart, ClauseDbP>, Const<Nested<ContainingPart, ClauseAllocP>, Const<Nested<ContainingPart, ClauseActivityP>, Const<Nested<ContainingPart, BinaryClausesP>, Const<Nested<ContainingPart, AssignmentP>, Const<Nested<ContainingPart, AnalyzeConflictP>, 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, WatchlistsP>, Mut<Nested<ContainingPart, VsidsP>, Mut<Nested<ContainingPart, VariablesP>, Mut<Nested<ContainingPart, TrailP>, Mut<Nested<ContainingPart, TmpFlagsP>, Mut<Nested<ContainingPart, TmpDataP>, Mut<Nested<ContainingPart, SolverStateP>, Mut<Nested<ContainingPart, SolverConfigP>, Mut<Nested<ContainingPart, ScheduleP>, Mut<Nested<ContainingPart, ProofP<'a>>, Mut<Nested<ContainingPart, ModelP>, Mut<Nested<ContainingPart, AssumptionsP>, Mut<Nested<ContainingPart, ImplGraphP>, Mut<Nested<ContainingPart, ClauseDbP>, Mut<Nested<ContainingPart, ClauseAllocP>, Mut<Nested<ContainingPart, ClauseActivityP>, Mut<Nested<ContainingPart, BinaryClausesP>, Mut<Nested<ContainingPart, AssignmentP>, Mut<Nested<ContainingPart, AnalyzeConflictP>, 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<AnalyzeConflictP> for Context<'a>[src]

impl<'a> HasPart<AssignmentP> for Context<'a>[src]

impl<'a> HasPart<BinaryClausesP> for Context<'a>[src]

impl<'a> HasPart<ClauseActivityP> for Context<'a>[src]

impl<'a> HasPart<ClauseAllocP> for Context<'a>[src]

impl<'a> HasPart<ClauseDbP> for Context<'a>[src]

impl<'a> HasPart<ImplGraphP> for Context<'a>[src]

impl<'a> HasPart<AssumptionsP> for Context<'a>[src]

impl<'a> HasPart<ModelP> for Context<'a>[src]

impl<'a> HasPart<ProofP<'a>> for Context<'a>[src]

impl<'a> HasPart<ScheduleP> for Context<'a>[src]

impl<'a> HasPart<SolverConfigP> for Context<'a>[src]

impl<'a> HasPart<SolverStateP> for Context<'a>[src]

impl<'a> HasPart<TmpDataP> for Context<'a>[src]

impl<'a> HasPart<TmpFlagsP> for Context<'a>[src]

impl<'a> HasPart<TrailP> for Context<'a>[src]

impl<'a> HasPart<VariablesP> for Context<'a>[src]

impl<'a> HasPart<VsidsP> for Context<'a>[src]

impl<'a> HasPart<WatchlistsP> for Context<'a>[src]

Auto Trait Implementations

impl<'a> !Send for Context<'a>

impl<'a> !Sync for Context<'a>

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

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