Struct chalk_engine::tables::Tables
source · [−]pub(crate) struct Tables<I: Interner> {
table_indices: FxHashMap<UCanonical<InEnvironment<Goal<I>>>, TableIndex>,
tables: Vec<Table<I>>,
}
Expand description
See Forest
.
Fields
table_indices: FxHashMap<UCanonical<InEnvironment<Goal<I>>>, TableIndex>
Maps from a canonical goal to the index of its table.
tables: Vec<Table<I>>
Table: as described above, stores the key information for each tree in the forest.
Implementations
sourceimpl<I: Interner> Tables<I>
impl<I: Interner> Tables<I>
pub(crate) fn new() -> Tables<I>
sourcepub(crate) fn next_index(&self) -> TableIndex
pub(crate) fn next_index(&self) -> TableIndex
The index that will be given to the next table to be inserted.
pub(crate) fn insert(&mut self, table: Table<I>) -> TableIndex
pub(crate) fn index_of(
&self,
literal: &UCanonical<InEnvironment<Goal<I>>>
) -> Option<TableIndex>
Trait Implementations
sourceimpl<I: Interner> Index<TableIndex> for Tables<I>
impl<I: Interner> Index<TableIndex> for Tables<I>
sourceimpl<I: Interner> IndexMut<TableIndex> for Tables<I>
impl<I: Interner> IndexMut<TableIndex> for Tables<I>
sourcefn index_mut(&mut self, index: TableIndex) -> &mut Table<I>
fn index_mut(&mut self, index: TableIndex) -> &mut Table<I>
Performs the mutable indexing (container[index]
) operation. Read more
sourceimpl<'a, I: Interner> IntoIterator for &'a mut Tables<I>
impl<'a, I: Interner> IntoIterator for &'a mut Tables<I>
type IntoIter = <&'a mut Vec<Table<I>> as IntoIterator>::IntoIter
type IntoIter = <&'a mut Vec<Table<I>> as IntoIterator>::IntoIter
Which kind of iterator are we turning this into?
type Item = <&'a mut Vec<Table<I>> as IntoIterator>::Item
type Item = <&'a mut Vec<Table<I>> as IntoIterator>::Item
The type of the elements being iterated over.
Auto Trait Implementations
impl<I> RefUnwindSafe for Tables<I> where
<I as Interner>::InternedCanonicalVarKinds: RefUnwindSafe,
<I as Interner>::InternedConstraints: RefUnwindSafe,
<I as Interner>::InternedGoal: RefUnwindSafe,
<I as Interner>::InternedLifetime: RefUnwindSafe,
<I as Interner>::InternedProgramClauses: RefUnwindSafe,
<I as Interner>::InternedSubstitution: RefUnwindSafe,
<I as Interner>::InternedType: RefUnwindSafe,
impl<I> Send for Tables<I> where
<I as Interner>::InternedCanonicalVarKinds: Send,
<I as Interner>::InternedConstraints: Send,
<I as Interner>::InternedGoal: Send,
<I as Interner>::InternedLifetime: Send,
<I as Interner>::InternedProgramClauses: Send,
<I as Interner>::InternedSubstitution: Send,
<I as Interner>::InternedType: Send,
impl<I> Sync for Tables<I> where
<I as Interner>::InternedCanonicalVarKinds: Sync,
<I as Interner>::InternedConstraints: Sync,
<I as Interner>::InternedGoal: Sync,
<I as Interner>::InternedLifetime: Sync,
<I as Interner>::InternedProgramClauses: Sync,
<I as Interner>::InternedSubstitution: Sync,
<I as Interner>::InternedType: Sync,
impl<I> Unpin for Tables<I> where
<I as Interner>::InternedCanonicalVarKinds: Unpin,
<I as Interner>::InternedConstraints: Unpin,
<I as Interner>::InternedGoal: Unpin,
<I as Interner>::InternedLifetime: Unpin,
<I as Interner>::InternedProgramClauses: Unpin,
<I as Interner>::InternedSubstitution: Unpin,
<I as Interner>::InternedType: Unpin,
impl<I> UnwindSafe for Tables<I> where
<I as Interner>::InternedCanonicalVarKinds: UnwindSafe,
<I as Interner>::InternedConstraints: UnwindSafe,
<I as Interner>::InternedGoal: UnwindSafe,
<I as Interner>::InternedLifetime: UnwindSafe,
<I as Interner>::InternedProgramClauses: UnwindSafe,
<I as Interner>::InternedSubstitution: UnwindSafe,
<I as Interner>::InternedType: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Cast for T
impl<T> Cast for T
sourcefn cast<U>(self, interner: <U as HasInterner>::Interner) -> U where
Self: CastTo<U>,
U: HasInterner,
fn cast<U>(self, interner: <U as HasInterner>::Interner) -> U where
Self: CastTo<U>,
U: HasInterner,
Cast a value to type U
using CastTo
.
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more