use ::semver::Version;
use crate::gen1::VersionEvolution;
pub type ErrMsg = String;
#[derive(Debug, Clone)]
pub enum GenResult {
Ok,
FinishEarly,
Error(ErrMsg),
}
pub trait Generator {
fn generate_pending(&mut self, evolution: VersionEvolution) -> GenResult;
fn generate_version(&mut self, version: Version, evolution: VersionEvolution) -> GenResult;
fn finalize(self) -> Result<(), ErrMsg>;
}