use super::{Effect, EffectHandler};
use std::sync::Arc;
#[derive(Debug, Clone)]
pub struct EffectHandlerRef {
effect_name: String,
handler: Arc<dyn EffectHandler + Send + Sync>,
}
impl PartialEq for EffectHandlerRef {
fn eq(&self, other: &Self) -> bool {
self.effect_name == other.effect_name
}
}
impl Eq for EffectHandlerRef {}
impl EffectHandlerRef {
pub fn new(effect_name: String, handler: Arc<dyn EffectHandler + Send + Sync>) -> Self {
Self {
effect_name,
handler,
}
}
pub fn effect_name(&self) -> &str {
&self.effect_name
}
pub fn handler(&self) -> &Arc<dyn EffectHandler + Send + Sync> {
&self.handler
}
}