From e5b9dee5915229ef7cfe64e554b6466f97fc3260 Mon Sep 17 00:00:00 2001 From: Natsu Kagami Date: Tue, 13 May 2025 00:03:44 +0200 Subject: [PATCH] Fit range to len --- youmubot-osu/src/request/scores.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/youmubot-osu/src/request/scores.rs b/youmubot-osu/src/request/scores.rs index fe7ce4b..1ef3171 100644 --- a/youmubot-osu/src/request/scores.rs +++ b/youmubot-osu/src/request/scores.rs @@ -102,7 +102,7 @@ impl Scores for Vec { } fn get_range(&mut self, range: Range) -> impl Future> + Send { - future::ok(&self[range]) + future::ok(&self[fit_range_to_len(self.len(), range)]) } async fn find bool + Send>(&mut self, mut f: F) -> Result> { @@ -110,6 +110,11 @@ impl Scores for Vec { } } +#[inline] +fn fit_range_to_len(len: usize, range: Range) -> Range { + range.start.min(len)..range.end.min(len) +} + /// A scores stream with a fetcher. pub(super) struct ScoresFetcher { fetcher: T, @@ -166,7 +171,7 @@ impl Scores for ScoresFetcher { break; } } - Ok(&self.scores[range.start.min(self.len())..range.end.min(self.len())]) + Ok(&self.scores[fit_range_to_len(self.len(), range)]) } async fn find bool + Send>(&mut self, mut f: F) -> Result> {