diff --git a/Cargo.lock b/Cargo.lock index 9b33e94..1a124e9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -16,7 +16,7 @@ checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" [[package]] name = "phasetida-core" -version = "0.1.18" +version = "0.1.19" dependencies = [ "serde", "serde_json", diff --git a/Cargo.toml b/Cargo.toml index d89602f..3047032 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "phasetida-core" -version = "0.1.18" +version = "0.1.19" edition = "2024" [lib] diff --git a/src/states_lines.rs b/src/states_lines.rs index 71c6134..7e9c7b9 100644 --- a/src/states_lines.rs +++ b/src/states_lines.rs @@ -100,6 +100,9 @@ where let mut i = cache_index.clamp(0, i64::from(events.len() as u32)); let mut last_result: TimeState = TimeState::During(0.0); loop { + if i < 0 { + return None; + } let op = events.get(i.max(0).unsigned_abs() as usize); if let Some(event) = op { let result = event.check_time(tick_time); @@ -120,9 +123,6 @@ where } last_result = result; } else { - if i <= 0 { - return None; - } return events .last() .map(|x| (x, i64::from(events.len() as u32) - 1, 1.0));