use pgn_reader::Skip;
use shakmaty::san::SanPlus;
dry_mods::mods! {
mod pub use sans, variation;
}
pub trait Movetext: Default {
type Agent;
fn begin_game() -> Self::Agent;
fn begin_variation(_agent: &mut Self::Agent) -> Skip {
Skip(true)
}
fn end_variation(_agent: &mut Self::Agent) {}
fn san(agent: &mut Self::Agent, san: SanPlus);
fn end_game(agent: Self::Agent) -> Self;
}
impl Movetext for () {
type Agent = ();
fn begin_game() -> Self::Agent {}
fn san((): &mut Self::Agent, _: SanPlus) {}
fn end_game((): Self::Agent) {}
}