Skip to main content

fast_pull/base/
progress.rs

1extern crate alloc;
2use core::ops::Range;
3
4pub type ProgressEntry = Range<u64>;
5
6pub trait Total {
7    fn total(&self) -> u64;
8}
9
10impl Total for ProgressEntry {
11    #[inline(always)]
12    fn total(&self) -> u64 {
13        self.end.saturating_sub(self.start)
14    }
15}
16
17impl Total for alloc::vec::Vec<ProgressEntry> {
18    fn total(&self) -> u64 {
19        self.iter().map(|r| r.total()).sum()
20    }
21}