pub struct Product<TOuter, TInner> {
pub outer: TOuter,
pub inner: TInner,
}Expand description
A nested pair of timestamps, one outer and one inner.
We use Product rather than (TOuter, TInner) so that we can derive our own PartialOrder,
because Rust just uses the lexicographic total order.
Fields§
§outer: TOuterOuter timestamp.
inner: TInnerInner timestamp.
Implementations§
Trait Implementations§
Source§impl<TOuter, TInner> Columnar for Product<TOuter, TInner>
impl<TOuter, TInner> Columnar for Product<TOuter, TInner>
Source§type Container = ProductContainer<<TOuter as Columnar>::Container, <TInner as Columnar>::Container>
type Container = ProductContainer<<TOuter as Columnar>::Container, <TInner as Columnar>::Container>
The type that stores the columnar representation. Read more
Source§fn copy_from<'a>(&mut self, other: Ref<'a, Self>)
fn copy_from<'a>(&mut self, other: Ref<'a, Self>)
Repopulates
self from a reference. Read moreSource§fn into_owned<'a>(other: Ref<'a, Self>) -> Self
fn into_owned<'a>(other: Ref<'a, Self>) -> Self
Produce an instance of
Self from Self::Ref<'a>.Source§fn as_columns<'a, I>(selves: I) -> Self::Containerwhere
I: IntoIterator<Item = &'a Self>,
Self: 'a,
fn as_columns<'a, I>(selves: I) -> Self::Containerwhere
I: IntoIterator<Item = &'a Self>,
Self: 'a,
Converts a sequence of the references to the type into columnar form.
Source§fn into_columns<I>(selves: I) -> Self::Containerwhere
I: IntoIterator<Item = Self>,
Self: Sized,
fn into_columns<I>(selves: I) -> Self::Containerwhere
I: IntoIterator<Item = Self>,
Self: Sized,
Converts a sequence of the type into columnar form. Read more
Source§impl<T1: Columnation, T2: Columnation> Columnation for Product<T1, T2>
impl<T1: Columnation, T2: Columnation> Columnation for Product<T1, T2>
Source§type InnerRegion = ProductRegion<<T1 as Columnation>::InnerRegion, <T2 as Columnation>::InnerRegion>
type InnerRegion = ProductRegion<<T1 as Columnation>::InnerRegion, <T2 as Columnation>::InnerRegion>
The type of region capable of absorbing allocations owned by
the
Self type. Note: not allocations of Self, but of the
things that it owns.Source§impl<'de, TOuter, TInner> Deserialize<'de> for Product<TOuter, TInner>where
TOuter: Deserialize<'de>,
TInner: Deserialize<'de>,
impl<'de, TOuter, TInner> Deserialize<'de> for Product<TOuter, TInner>where
TOuter: Deserialize<'de>,
TInner: Deserialize<'de>,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<TOuter: Ord, TInner: Ord> Ord for Product<TOuter, TInner>
impl<TOuter: Ord, TInner: Ord> Ord for Product<TOuter, TInner>
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl<TOuter: PartialOrd, TInner: PartialOrd> PartialOrd for Product<TOuter, TInner>
impl<TOuter: PartialOrd, TInner: PartialOrd> PartialOrd for Product<TOuter, TInner>
Source§impl<TOuter, TOuter2, TInner, TInner2> PartialOrder<Product<TOuter2, TInner2>> for Product<TOuter, TInner>where
TOuter: PartialOrder<TOuter2>,
TInner: PartialOrder<TInner2>,
Self: PartialEq<Product<TOuter2, TInner2>>,
impl<TOuter, TOuter2, TInner, TInner2> PartialOrder<Product<TOuter2, TInner2>> for Product<TOuter, TInner>where
TOuter: PartialOrder<TOuter2>,
TInner: PartialOrder<TInner2>,
Self: PartialEq<Product<TOuter2, TInner2>>,
Source§impl<TOuter: Timestamp, TInner: Timestamp> PathSummary<Product<TOuter, TInner>> for Product<TOuter::Summary, TInner::Summary>
impl<TOuter: Timestamp, TInner: Timestamp> PathSummary<Product<TOuter, TInner>> for Product<TOuter::Summary, TInner::Summary>
Source§impl<TOuter: Timestamp, TInner: Timestamp> Refines<TOuter> for Product<TOuter, TInner>
impl<TOuter: Timestamp, TInner: Timestamp> Refines<TOuter> for Product<TOuter, TInner>
impl<TOuter: Copy, TInner: Copy> Copy for Product<TOuter, TInner>
impl<T1: Empty, T2: Empty> Empty for Product<T1, T2>
impl<TOuter: Eq, TInner: Eq> Eq for Product<TOuter, TInner>
impl<TOuter, TInner> StructuralPartialEq for Product<TOuter, TInner>
impl<T1, T2> TotalOrder for Product<T1, T2>where
T1: Empty,
T2: TotalOrder,
Auto Trait Implementations§
impl<TOuter, TInner> Freeze for Product<TOuter, TInner>
impl<TOuter, TInner> RefUnwindSafe for Product<TOuter, TInner>where
TOuter: RefUnwindSafe,
TInner: RefUnwindSafe,
impl<TOuter, TInner> Send for Product<TOuter, TInner>
impl<TOuter, TInner> Sync for Product<TOuter, TInner>
impl<TOuter, TInner> Unpin for Product<TOuter, TInner>
impl<TOuter, TInner> UnwindSafe for Product<TOuter, TInner>where
TOuter: UnwindSafe,
TInner: UnwindSafe,
Blanket Implementations§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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