| 1290 | if *f <= frame { |
| 1291 | prev = Some((*f, key, comp)); |
| 1292 | } else { |
| 1293 | next = Some((*f, key, comp)); |
| 1294 | break; |
| 1295 | } |
| 1296 | } |
| 1297 | resolve_sample(frame, prev, next, lerp) |
| 1298 | } |
| 1299 | |
| 1300 | fn resolve_sample<T: Copy>( |
| 1301 | frame: u32, |
| 1302 | prev: Option<(u32, &TrackKey, T)>, |
| 1303 | next: Option<(u32, &TrackKey, T)>, |
| 1304 | lerp: impl Fn(T, T, f32) -> T, |
| 1305 | ) -> Option<T> { |
| 1306 | match (prev, next) { |
| 1307 | (None, None) => None, |
| 1308 | (Some((_, _, value)), None) => Some(value), |
| 1309 | (None, Some((_, _, value))) => Some(value), |