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 Ref<'a> = ProductReference<<TOuter as Columnar>::Ref<'a>, <TInner as Columnar>::Ref<'a>>
where
TOuter: 'a,
TInner: 'a
type Ref<'a> = ProductReference<<TOuter as Columnar>::Ref<'a>, <TInner as Columnar>::Ref<'a>> where TOuter: 'a, TInner: 'a
For each lifetime, a reference with that lifetime. Read more
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: Self::Ref<'a>)
fn copy_from<'a>(&mut self, other: Self::Ref<'a>)
Repopulates
self from a reference. Read moreSource§fn into_owned<'a>(other: Self::Ref<'a>) -> Self
fn into_owned<'a>(other: Self::Ref<'a>) -> 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<'a, TOuter, TInner> IntoOwned<'a> for Product<TOuter, TInner>
impl<'a, TOuter, TInner> IntoOwned<'a> for Product<TOuter, TInner>
Source§type Owned = Product<<TOuter as IntoOwned<'a>>::Owned, <TInner as IntoOwned<'a>>::Owned>
type Owned = Product<<TOuter as IntoOwned<'a>>::Owned, <TInner as IntoOwned<'a>>::Owned>
Owned type into which this type can be converted.
Source§fn into_owned(self) -> Self::Owned
fn into_owned(self) -> Self::Owned
Conversion from an instance of this type to the owned type.
Source§fn clone_onto(self, other: &mut Self::Owned)
fn clone_onto(self, other: &mut Self::Owned)
Clones
self onto an existing instance of the owned type.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<'a, TO, TI, RO, RI> Push<&&'a Product<TO, TI>> for ProductRegion<RO, RI>
impl<'a, TO, TI, RO, RI> Push<&&'a Product<TO, TI>> for ProductRegion<RO, RI>
Source§impl<'a, TO, TI, RO, RI> Push<&'a Product<TO, TI>> for ProductRegion<RO, RI>
impl<'a, TO, TI, RO, RI> Push<&'a Product<TO, TI>> for ProductRegion<RO, RI>
Source§impl<TO, TI, RO, RI> Push<Product<TO, TI>> for ProductRegion<RO, RI>
impl<TO, TI, RO, RI> Push<Product<TO, TI>> for ProductRegion<RO, RI>
Source§impl<TOuter: Timestamp, TInner: Timestamp> Refines<TOuter> for Product<TOuter, TInner>
impl<TOuter: Timestamp, TInner: Timestamp> Refines<TOuter> for Product<TOuter, TInner>
Source§impl<TO: RegionPreference, TI: RegionPreference> RegionPreference for Product<TO, TI>
impl<TO: RegionPreference, TI: RegionPreference> RegionPreference for Product<TO, TI>
Source§type Owned = Product<<TO as RegionPreference>::Owned, <TI as RegionPreference>::Owned>
type Owned = Product<<TO as RegionPreference>::Owned, <TI as RegionPreference>::Owned>
The owned type of the region.
Source§type Region = ProductRegion<<TO as RegionPreference>::Region, <TI as RegionPreference>::Region>
type Region = ProductRegion<<TO as RegionPreference>::Region, <TI as RegionPreference>::Region>
The recommended container type.
Source§impl<'a, RO, RI> ReserveItems<Product<<RO as Region>::ReadItem<'a>, <RI as Region>::ReadItem<'a>>> for ProductRegion<RO, RI>where
RO: Region + ReserveItems<<RO as Region>::ReadItem<'a>> + 'a,
RI: Region + ReserveItems<<RI as Region>::ReadItem<'a>> + 'a,
impl<'a, RO, RI> ReserveItems<Product<<RO as Region>::ReadItem<'a>, <RI as Region>::ReadItem<'a>>> for ProductRegion<RO, RI>where
RO: Region + ReserveItems<<RO as Region>::ReadItem<'a>> + 'a,
RI: Region + ReserveItems<<RI as Region>::ReadItem<'a>> + 'a,
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