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§
source§impl<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§
source§impl<I: Interner> Index<TableIndex> for Tables<I>
impl<I: Interner> Index<TableIndex> for Tables<I>
source§impl<I: Interner> IndexMut<TableIndex> for Tables<I>
impl<I: Interner> IndexMut<TableIndex> for Tables<I>
Auto Trait Implementations§
impl<I> Freeze for Tables<I>
impl<I> RefUnwindSafe for Tables<I>where
<I as Interner>::InternedCanonicalVarKinds: RefUnwindSafe,
<I as Interner>::InternedGoal: RefUnwindSafe,
<I as Interner>::InternedProgramClauses: RefUnwindSafe,
<I as Interner>::InternedSubstitution: RefUnwindSafe,
<I as Interner>::InternedConstraints: RefUnwindSafe,
<I as Interner>::InternedLifetime: RefUnwindSafe,
<I as Interner>::InternedType: RefUnwindSafe,
impl<I> Send for Tables<I>where
<I as Interner>::InternedCanonicalVarKinds: Send,
<I as Interner>::InternedGoal: Send,
<I as Interner>::InternedProgramClauses: Send,
<I as Interner>::InternedSubstitution: Send,
<I as Interner>::InternedConstraints: Send,
<I as Interner>::InternedLifetime: Send,
<I as Interner>::InternedType: Send,
impl<I> Sync for Tables<I>where
<I as Interner>::InternedCanonicalVarKinds: Sync,
<I as Interner>::InternedGoal: Sync,
<I as Interner>::InternedProgramClauses: Sync,
<I as Interner>::InternedSubstitution: Sync,
<I as Interner>::InternedConstraints: Sync,
<I as Interner>::InternedLifetime: Sync,
<I as Interner>::InternedType: Sync,
impl<I> Unpin for Tables<I>where
<I as Interner>::InternedCanonicalVarKinds: Unpin,
<I as Interner>::InternedGoal: Unpin,
<I as Interner>::InternedProgramClauses: Unpin,
<I as Interner>::InternedSubstitution: Unpin,
<I as Interner>::InternedConstraints: Unpin,
<I as Interner>::InternedLifetime: Unpin,
<I as Interner>::InternedType: Unpin,
impl<I> UnwindSafe for Tables<I>where
<I as Interner>::InternedCanonicalVarKinds: UnwindSafe,
<I as Interner>::InternedGoal: UnwindSafe,
<I as Interner>::InternedProgramClauses: UnwindSafe,
<I as Interner>::InternedSubstitution: UnwindSafe,
<I as Interner>::InternedConstraints: UnwindSafe,
<I as Interner>::InternedLifetime: UnwindSafe,
<I as Interner>::InternedType: UnwindSafe,
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