grammar_utils/lr0/
state.rs

1use super::*;
2
3#[derive(Debug)]
4#[derive(Clone, Copy, Eq, PartialEq, Hash)]
5pub struct StateIndex(pub(crate) usize);
6
7#[derive(PartialEq, Eq)]
8pub struct State<'g> {
9    itemset: ItemSet<'g>,
10}
11
12impl<'g> State<'g> {
13    pub(crate) fn new(itemset: ItemSet<'g>) -> Self {
14        State {
15            itemset,
16        }
17    }
18
19    pub fn itemset(&self) -> &ItemSet<'g> {
20        &self.itemset
21    }
22}
23
24impl From<StateIndex> for usize {
25    fn from(value: StateIndex) -> Self {
26        value.0
27    }
28}