pub struct ContentDigest {
pub rows: u64,
pub sum: u128,
pub xor: u128,
pub key_min: Option<i64>,
pub key_max: Option<i64>,
}Expand description
An order-independent digest of a set of rows.
Fields§
§rows: u64§sum: u128Wrapping sum of the row fingerprints.
xor: u128XOR of the row fingerprints (catches a sum collision from swapped rows).
key_min: Option<i64>Smallest / largest integer key seen (single integer keys only).
key_max: Option<i64>Implementations§
Source§impl ContentDigest
impl ContentDigest
Sourcepub fn same(&self, other: &ContentDigest) -> bool
pub fn same(&self, other: &ContentDigest) -> bool
Whether two digests describe the same row set.
Sourcepub fn bounds_union(&self, other: &ContentDigest) -> Option<(i64, i64)>
pub fn bounds_union(&self, other: &ContentDigest) -> Option<(i64, i64)>
The union of the observed key bounds of two digests.
Trait Implementations§
Source§impl Clone for ContentDigest
impl Clone for ContentDigest
impl Copy for ContentDigest
Source§impl Debug for ContentDigest
impl Debug for ContentDigest
Source§impl Default for ContentDigest
impl Default for ContentDigest
Source§impl<'de> Deserialize<'de> for ContentDigest
impl<'de> Deserialize<'de> for ContentDigest
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
impl Eq for ContentDigest
Source§impl PartialEq for ContentDigest
impl PartialEq for ContentDigest
Source§impl Serialize for ContentDigest
impl Serialize for ContentDigest
impl StructuralPartialEq for ContentDigest
Auto Trait Implementations§
impl Freeze for ContentDigest
impl RefUnwindSafe for ContentDigest
impl Send for ContentDigest
impl Sync for ContentDigest
impl Unpin for ContentDigest
impl UnsafeUnpin for ContentDigest
impl UnwindSafe for ContentDigest
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request