use sim_lib_music_core::{Music, MusicObject};
use crate::{PatternMutatorConfig, TransformError};
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct PatternMutatorPlayer {
pub config: PatternMutatorConfig,
}
impl PatternMutatorPlayer {
pub fn new(config: PatternMutatorConfig) -> Self {
Self { config }
}
pub fn play(&self, input: &dyn MusicObject) -> Result<Music, TransformError> {
self.config.apply(input)
}
pub fn to_wire(&self) -> String {
self.config.to_wire()
}
}
pub fn player_mutator(config: PatternMutatorConfig) -> PatternMutatorPlayer {
PatternMutatorPlayer::new(config)
}