pub struct Arena { /* private fields */ }Expand description
Arena for interning terms with hash-consing
Implementations§
Source§impl Arena
impl Arena
Sourcepub fn get_term(&self, id: TermId) -> Option<&Term>
pub fn get_term(&self, id: TermId) -> Option<&Term>
Get a term by its ID (alias for compatibility)
Sourcepub fn stats(&self) -> &ArenaStats
pub fn stats(&self) -> &ArenaStats
Get arena statistics
Sourcepub fn cache_hit_rate(&self) -> f64
pub fn cache_hit_rate(&self) -> f64
Get cache efficiency (hit rate)
Sourcepub fn clear_stats(&mut self)
pub fn clear_stats(&mut self)
Clear all statistics
Sourcepub fn mk_const(&mut self, name: SymbolId, levels: Vec<LevelId>) -> TermId
pub fn mk_const(&mut self, name: SymbolId, levels: Vec<LevelId>) -> TermId
Create a constant term
Sourcepub fn mk_let(&mut self, binder: Binder, value: TermId, body: TermId) -> TermId
pub fn mk_let(&mut self, binder: Binder, value: TermId, body: TermId) -> TermId
Create a let term
Sourcepub fn mk_app_spine(&mut self, func: TermId, args: &[TermId]) -> TermId
pub fn mk_app_spine(&mut self, func: TermId, args: &[TermId]) -> TermId
Create a spine of applications (f x y z)
Sourcepub fn mk_level_zero(&mut self) -> LevelId
pub fn mk_level_zero(&mut self) -> LevelId
Create a zero universe level
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Arena
impl RefUnwindSafe for Arena
impl Send for Arena
impl Sync for Arena
impl Unpin for Arena
impl UnwindSafe for Arena
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