pub trait ThresholdTotal<G: Scope<Timestamp: TotalOrder + Lattice + Ord>, K: ExchangeData, R: ExchangeData + Semigroup> {
// Required method
fn threshold_semigroup<R2, F>(&self, thresh: F) -> Collection<G, K, R2>
where R2: Semigroup + 'static,
F: FnMut(&K, &R, Option<&R>) -> Option<R2> + 'static;
// Provided methods
fn threshold_total<R2: Abelian + 'static, F: FnMut(&K, &R) -> R2 + 'static>(
&self,
thresh: F,
) -> Collection<G, K, R2> { ... }
fn distinct_total(&self) -> Collection<G, K, isize> { ... }
fn distinct_total_core<R2: Abelian + From<i8> + 'static>(
&self,
) -> Collection<G, K, R2> { ... }
}Expand description
Extension trait for the distinct differential dataflow method.
Required Methods§
Sourcefn threshold_semigroup<R2, F>(&self, thresh: F) -> Collection<G, K, R2>
fn threshold_semigroup<R2, F>(&self, thresh: F) -> Collection<G, K, R2>
Reduces the collection to one occurrence of each distinct element.
Provided Methods§
Sourcefn threshold_total<R2: Abelian + 'static, F: FnMut(&K, &R) -> R2 + 'static>(
&self,
thresh: F,
) -> Collection<G, K, R2>
fn threshold_total<R2: Abelian + 'static, F: FnMut(&K, &R) -> R2 + 'static>( &self, thresh: F, ) -> Collection<G, K, R2>
Reduces the collection to one occurrence of each distinct element.
§Examples
use differential_dataflow::input::Input;
use differential_dataflow::operators::ThresholdTotal;
::timely::example(|scope| {
// report the number of occurrences of each key
scope.new_collection_from(1 .. 10).1
.map(|x| x / 3)
.threshold_total(|_,c| c % 2);
});Sourcefn distinct_total(&self) -> Collection<G, K, isize>
fn distinct_total(&self) -> Collection<G, K, isize>
Reduces the collection to one occurrence of each distinct element.
This reduction only tests whether the weight associated with a record is non-zero, and otherwise
ignores its specific value. To take more general actions based on the accumulated weight, consider
the threshold method.
§Examples
use differential_dataflow::input::Input;
use differential_dataflow::operators::ThresholdTotal;
::timely::example(|scope| {
// report the number of occurrences of each key
scope.new_collection_from(1 .. 10).1
.map(|x| x / 3)
.distinct_total();
});Sourcefn distinct_total_core<R2: Abelian + From<i8> + 'static>(
&self,
) -> Collection<G, K, R2>
fn distinct_total_core<R2: Abelian + From<i8> + 'static>( &self, ) -> Collection<G, K, R2>
Distinct for general integer differences.
This method allows distinct to produce collections whose difference
type is something other than an isize integer, for example perhaps an
i32.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.