use crate::{ActiveStateTransition, AnimationHandle, AnimationRegistration};
#[derive(Debug, Clone, PartialEq)]
pub struct StateTransitionRegistration<S>
where
S: Copy + Eq,
{
registration: AnimationRegistration,
replaced: Option<ActiveStateTransition<S>>,
}
impl<S> StateTransitionRegistration<S>
where
S: Copy + Eq,
{
pub(crate) const fn new(
registration: AnimationRegistration,
replaced: Option<ActiveStateTransition<S>>,
) -> Self {
Self {
registration,
replaced,
}
}
#[must_use]
pub const fn registration(&self) -> &AnimationRegistration {
&self.registration
}
#[must_use]
pub const fn handle(&self) -> AnimationHandle {
self.registration.handle()
}
#[must_use]
pub const fn replaced(&self) -> Option<&ActiveStateTransition<S>> {
self.replaced.as_ref()
}
#[must_use]
pub fn into_registration(self) -> AnimationRegistration {
self.registration
}
}