#[allow(deprecated)]
mod impl_deprecated;
mod impl_program;
use crate::types::RuleVec;
use rstm_state::{RawState, State};
#[derive(Clone, Debug, Default)]
#[cfg_attr(
feature = "serde",
derive(serde::Serialize),
serde(rename_all = "camelCase")
)]
pub struct Program<Q = String, A = char>
where
Q: RawState,
{
pub(crate) initial_state: Option<State<Q>>,
pub(crate) rules: RuleVec<Q, A>,
}