use super::*;
mod display;
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub enum TableKind {
Tuple,
OffsetTable,
OrdinalTable,
}
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct TableNode<E> {
pub kind: TableKind,
pub terms: Vec<ApplyTermNode<IdentifierNode, E>>,
pub range: Range<usize>,
}
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct ArgumentTermNode<K, V, D> {
pub key: Option<K>,
pub value: V,
pub default: Option<D>,
}