sim_lib_music_transform/
player.rs1use sim_lib_music_core::{Music, MusicObject};
2
3use crate::{PatternMutatorConfig, TransformError};
4
5#[derive(Clone, Debug, PartialEq, Eq)]
7pub struct PatternMutatorPlayer {
8 pub config: PatternMutatorConfig,
10}
11
12impl PatternMutatorPlayer {
13 pub fn new(config: PatternMutatorConfig) -> Self {
15 Self { config }
16 }
17
18 pub fn play(&self, input: &dyn MusicObject) -> Result<Music, TransformError> {
20 self.config.apply(input)
21 }
22
23 pub fn to_wire(&self) -> String {
25 self.config.to_wire()
26 }
27}
28
29pub fn player_mutator(config: PatternMutatorConfig) -> PatternMutatorPlayer {
31 PatternMutatorPlayer::new(config)
32}