use crate::{codelet::Transition, core::DefaultStatus};
use eyre::Result;
pub trait Lifecycle {
fn cycle(&mut self, transition: Transition) -> Result<DefaultStatus>;
}
#[derive(Default, Clone, Copy)]
pub enum LifecycleStatus {
#[default]
Inactive,
Starting,
Running,
Pausing,
Paused,
Resuming,
Stopping,
Error,
}