fetish_lib/
nonprimitive_term_pointer.rs

1use crate::term_pointer::*;
2use crate::type_id::*;
3use crate::displayable_with_state::*;
4use crate::context::*;
5use crate::interpreter_state::*;
6
7///A pointer to a non-primitive term stored in an [`InterpreterState`].
8#[derive(Copy, Clone, PartialEq, Hash, Eq)]
9pub struct NonPrimitiveTermPointer {
10    pub type_id : TypeId,
11    pub index : usize
12}
13
14impl DisplayableWithState for NonPrimitiveTermPointer {
15    fn display(&self, state : &InterpreterState) -> String {
16        let term = state.get_nonprimitive(*self);
17        term.display(state)
18    }
19}