pub struct U64CO { /* private fields */ }Implementations§
Source§impl U64CO
impl U64CO
pub const fn try_new(start: u64, end_excl: u64) -> Option<Self>
pub const unsafe fn new_unchecked(start: u64, end_excl: u64) -> Self
pub const fn start(self) -> u64
pub const fn end_excl(self) -> u64
pub const fn end_incl(self) -> u64
pub const fn len(self) -> u64
pub const fn contains(self, x: u64) -> bool
pub const fn iter(self) -> Range<u64>
pub const fn to_range(self) -> Range<u64>
pub const fn intersects(self, other: Self) -> bool
pub const fn is_adjacent(self, other: Self) -> bool
pub const fn is_contiguous_with(self, other: Self) -> bool
Source§impl U64CO
impl U64CO
Sourcepub const fn intersection(self, other: Self) -> Option<Self>
pub const fn intersection(self, other: Self) -> Option<Self>
Returns the intersection of two intervals.
If the intervals do not overlap, returns None.
Sourcepub const fn convex_hull(self, other: Self) -> Self
pub const fn convex_hull(self, other: Self) -> Self
Returns the convex hull (smallest interval containing both) of two intervals.
Always returns a valid U64CO.
Sourcepub const fn between(self, other: Self) -> Option<Self>
pub const fn between(self, other: Self) -> Option<Self>
Returns the interval strictly between two intervals.
If the intervals are contiguous or overlap, returns None.
Sourcepub const fn union(self, other: Self) -> OneTwo<Self>
pub const fn union(self, other: Self) -> OneTwo<Self>
Returns the union of two intervals.
- If intervals are contiguous or overlapping, returns
Onecontaining the merged interval. - Otherwise, returns
Twocontaining both intervals in ascending order.
Sourcepub const fn difference(self, other: Self) -> ZeroOneTwo<Self>
pub const fn difference(self, other: Self) -> ZeroOneTwo<Self>
Returns the difference of two intervals (self - other).
- If no overlap, returns
One(self). - If partial overlap, returns
OneorTwodepending on remaining segments. - If fully contained, returns
Zero.
Sourcepub const fn symmetric_difference(self, other: Self) -> ZeroOneTwo<Self>
pub const fn symmetric_difference(self, other: Self) -> ZeroOneTwo<Self>
Returns the symmetric difference of two intervals.
Equivalent to (self - other) ∪ (other - self).
- If intervals do not overlap, returns
Two(self, other)in order. - If intervals partially overlap, returns remaining non-overlapping segments as
OneorTwo.
Source§impl U64CO
impl U64CO
Sourcepub const fn checked_minkowski_add(self, other: Self) -> Option<Self>
pub const fn checked_minkowski_add(self, other: Self) -> Option<Self>
Minkowski addition: [a_start, a_end) + [b_start, b_end)
Sourcepub const fn checked_minkowski_sub(self, other: Self) -> Option<Self>
pub const fn checked_minkowski_sub(self, other: Self) -> Option<Self>
Minkowski subtraction: [a_start, a_end) - [b_start, b_end)
Sourcepub const fn checked_minkowski_mul(self, other: Self) -> Option<Self>
pub const fn checked_minkowski_mul(self, other: Self) -> Option<Self>
Minkowski multiplication: [a_start, a_end) * [b_start, b_end)
Sourcepub const fn checked_minkowski_div(self, other: Self) -> Option<Self>
pub const fn checked_minkowski_div(self, other: Self) -> Option<Self>
Minkowski division: [a_start, a_end) / [b_start, b_end)
Source§impl U64CO
impl U64CO
Sourcepub const fn checked_minkowski_add_n(self, n: u64) -> Option<Self>
pub const fn checked_minkowski_add_n(self, n: u64) -> Option<Self>
Add a scalar to an interval: [start, end) + n
Sourcepub const fn checked_minkowski_sub_n(self, n: u64) -> Option<Self>
pub const fn checked_minkowski_sub_n(self, n: u64) -> Option<Self>
Subtract a scalar from an interval: [start, end) - n
Sourcepub const fn checked_minkowski_mul_n(self, n: u64) -> Option<Self>
pub const fn checked_minkowski_mul_n(self, n: u64) -> Option<Self>
Multiply an interval by a scalar: [start, end) * n
Sourcepub const fn checked_minkowski_div_n(self, n: u64) -> Option<Self>
pub const fn checked_minkowski_div_n(self, n: u64) -> Option<Self>
Divide an interval by a scalar: [start, end) / n
Source§impl U64CO
impl U64CO
pub const fn saturating_minkowski_add(self, other: Self) -> Option<Self>
pub const fn saturating_minkowski_sub(self, other: Self) -> Option<Self>
pub const fn saturating_minkowski_mul(self, other: Self) -> Option<Self>
pub const fn saturating_minkowski_div(self, other: Self) -> Option<Self>
Source§impl U64CO
impl U64CO
Sourcepub const fn saturating_minkowski_add_n(self, n: u64) -> Option<Self>
pub const fn saturating_minkowski_add_n(self, n: u64) -> Option<Self>
Saturating add scalar: [start, end) + n
Sourcepub const fn saturating_minkowski_sub_n(self, n: u64) -> Option<Self>
pub const fn saturating_minkowski_sub_n(self, n: u64) -> Option<Self>
Saturating sub scalar: [start, end) - n
Sourcepub const fn saturating_minkowski_mul_n(self, n: u64) -> Option<Self>
pub const fn saturating_minkowski_mul_n(self, n: u64) -> Option<Self>
Saturating mul scalar: [start, end) * n
Sourcepub const fn saturating_minkowski_div_n(self, n: u64) -> Option<Self>
pub const fn saturating_minkowski_div_n(self, n: u64) -> Option<Self>
Saturating div scalar: [start, end) / n