pub struct OverlapPlan {
pub ends: Vec<i64>,
pub offsets: Vec<usize>,
pub interval_ids: Vec<usize>,
}Expand description
Which intervals cover each segment, for aggregating interval values in any way.
Segments are cut at every interval start and end, and cover
0..max(end) (or 0..length). Segment s ends at ends[s] and is
covered by intervals interval_ids[offsets[s]..offsets[s + 1]] (sorted;
none where uncovered). This is the same layout as an Arrow list column.
The ids can be large when many intervals overlap deeply; for sums, counts,
maxima and minima, the coverage_* functions avoid building them.
Fields§
§ends: Vec<i64>§offsets: Vec<usize>§interval_ids: Vec<usize>Implementations§
Source§impl OverlapPlan
impl OverlapPlan
Trait Implementations§
Source§impl Clone for OverlapPlan
impl Clone for OverlapPlan
Source§fn clone(&self) -> OverlapPlan
fn clone(&self) -> OverlapPlan
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for OverlapPlan
impl Debug for OverlapPlan
impl Eq for OverlapPlan
Source§impl PartialEq for OverlapPlan
impl PartialEq for OverlapPlan
impl StructuralPartialEq for OverlapPlan
Auto Trait Implementations§
impl Freeze for OverlapPlan
impl RefUnwindSafe for OverlapPlan
impl Send for OverlapPlan
impl Sync for OverlapPlan
impl Unpin for OverlapPlan
impl UnsafeUnpin for OverlapPlan
impl UnwindSafe for OverlapPlan
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more