use crate::auth_machine::dsl::{AuthLifecyclePhase, AuthMachineEffect};
#[derive(Debug, Clone)]
pub struct AuthLeaseLifecyclePublicationObligation {
pub new_state: AuthLifecyclePhase,
}
pub fn extract_obligations(
effects: &[AuthMachineEffect],
) -> Vec<AuthLeaseLifecyclePublicationObligation> {
effects
.iter()
.filter_map(|effect| match effect {
AuthMachineEffect::EmitLifecycleEvent { new_state } => {
Some(AuthLeaseLifecyclePublicationObligation {
new_state: new_state.clone(),
})
}
_ => None,
})
.collect()
}