Skip to main content

lisette_semantics/checker/infer/
context.rs

1use std::ops::{Deref, DerefMut};
2
3use crate::checker::TaskState;
4use crate::store::Store;
5
6pub struct InferCtx<'a, 's> {
7    state: &'a mut TaskState<'s>,
8    pub(crate) store: &'a Store,
9}
10
11impl<'a, 's> InferCtx<'a, 's> {
12    pub fn new(state: &'a mut TaskState<'s>, store: &'a Store) -> Self {
13        Self { state, store }
14    }
15}
16
17impl<'s> Deref for InferCtx<'_, 's> {
18    type Target = TaskState<'s>;
19
20    fn deref(&self) -> &Self::Target {
21        self.state
22    }
23}
24
25impl DerefMut for InferCtx<'_, '_> {
26    fn deref_mut(&mut self) -> &mut Self::Target {
27        self.state
28    }
29}