소스 검색

Add method to Sample for mapping some audio type A to an audio type B

mitchmindtree 8 년 전
부모
커밋
4812319e81
1개의 변경된 파일12개의 추가작업 그리고 0개의 파일을 삭제
  1. 12 0
      src/map.rs

+ 12 - 0
src/map.rs

@@ -86,6 +86,18 @@ impl<A> Sample<A> {
         }
     }
 
+    /// Maps the `Sample` with some `Audio` type `A` to a `Sample` with some `Audio` type `B`.
+    pub fn map_audio<F, B>(self, map: F) -> Sample<B>
+        where F: FnOnce(A) -> B,
+    {
+        let Sample { base_hz, base_vel, audio } = self;
+        Sample {
+            base_hz: base_hz,
+            base_vel: base_vel,
+            audio: map(audio),
+        }
+    }
+
 }
 
 impl<A> Map<A>