mod range_private { pub trait Sealed<Idx> { } }
pub trait IsntRangeExt<Idx>: range_private::Sealed<Idx> {
#[must_use]
fn not_contains<U>(&self, item: &U) -> bool where Idx: PartialOrd<U>, U: PartialOrd<Idx> + ?Sized,;
#[must_use]
fn is_not_empty(&self) -> bool;
}
impl<Idx> range_private::Sealed<Idx> for std::ops::Range<Idx> where Idx: PartialOrd<Idx>, { }
impl<Idx> IsntRangeExt<Idx> for std::ops::Range<Idx> where Idx: PartialOrd<Idx>, {
#[inline]
fn not_contains<U>(&self, item: &U) -> bool where Idx: PartialOrd<U>, U: PartialOrd<Idx> + ?Sized, {
!self.contains::<U>(item)
}
#[inline]
fn is_not_empty(&self) -> bool {
!self.is_empty()
}
}
mod range_from_private { pub trait Sealed<Idx> { } }
pub trait IsntRangeFromExt<Idx>: range_from_private::Sealed<Idx> {
#[must_use]
fn not_contains<U>(&self, item: &U) -> bool where Idx: PartialOrd<U>, U: PartialOrd<Idx> + ?Sized,;
}
impl<Idx> range_from_private::Sealed<Idx> for std::ops::RangeFrom<Idx> where Idx: PartialOrd<Idx>, { }
impl<Idx> IsntRangeFromExt<Idx> for std::ops::RangeFrom<Idx> where Idx: PartialOrd<Idx>, {
#[inline]
fn not_contains<U>(&self, item: &U) -> bool where Idx: PartialOrd<U>, U: PartialOrd<Idx> + ?Sized, {
!self.contains::<U>(item)
}
}
mod range_inclusive_private { pub trait Sealed<Idx> { } }
pub trait IsntRangeInclusiveExt<Idx>: range_inclusive_private::Sealed<Idx> {
#[must_use]
fn not_contains<U>(&self, item: &U) -> bool where Idx: PartialOrd<U>, U: PartialOrd<Idx> + ?Sized,;
#[must_use]
fn is_not_empty(&self) -> bool;
}
impl<Idx> range_inclusive_private::Sealed<Idx> for std::ops::RangeInclusive<Idx> where Idx: PartialOrd<Idx>, { }
impl<Idx> IsntRangeInclusiveExt<Idx> for std::ops::RangeInclusive<Idx> where Idx: PartialOrd<Idx>, {
#[inline]
fn not_contains<U>(&self, item: &U) -> bool where Idx: PartialOrd<U>, U: PartialOrd<Idx> + ?Sized, {
!self.contains::<U>(item)
}
#[inline]
fn is_not_empty(&self) -> bool {
!self.is_empty()
}
}
mod range_to_private { pub trait Sealed<Idx> { } }
pub trait IsntRangeToExt<Idx>: range_to_private::Sealed<Idx> {
#[must_use]
fn not_contains<U>(&self, item: &U) -> bool where Idx: PartialOrd<U>, U: PartialOrd<Idx> + ?Sized,;
}
impl<Idx> range_to_private::Sealed<Idx> for std::ops::RangeTo<Idx> where Idx: PartialOrd<Idx>, { }
impl<Idx> IsntRangeToExt<Idx> for std::ops::RangeTo<Idx> where Idx: PartialOrd<Idx>, {
#[inline]
fn not_contains<U>(&self, item: &U) -> bool where Idx: PartialOrd<U>, U: PartialOrd<Idx> + ?Sized, {
!self.contains::<U>(item)
}
}
mod range_to_inclusive_private { pub trait Sealed<Idx> { } }
pub trait IsntRangeToInclusiveExt<Idx>: range_to_inclusive_private::Sealed<Idx> {
#[must_use]
fn not_contains<U>(&self, item: &U) -> bool where Idx: PartialOrd<U>, U: PartialOrd<Idx> + ?Sized,;
}
impl<Idx> range_to_inclusive_private::Sealed<Idx> for std::ops::RangeToInclusive<Idx> where Idx: PartialOrd<Idx>, { }
impl<Idx> IsntRangeToInclusiveExt<Idx> for std::ops::RangeToInclusive<Idx> where Idx: PartialOrd<Idx>, {
#[inline]
fn not_contains<U>(&self, item: &U) -> bool where Idx: PartialOrd<U>, U: PartialOrd<Idx> + ?Sized, {
!self.contains::<U>(item)
}
}