fn build_distinct<G>(collection: Collection<G, (Row, Row)>) -> Arrangement<G, Row>
where
    G: Scope,
    G::Timestamp: Lattice,
{
    collection.reduce_abelian::<_, RowSpine<_, _, _, _>>("DistinctBy", {
        |_key, _input, output| {
            // We're pushing an empty row here because the key is implicitly added by the
            // arrangement, and the permutation logic takes care of using the key part of the
            // output.
            output.push((Row::default(), 1));
        }
    })
}
/// Build the dataflow to compute the set of distinct keys.
Build the dataflow to compute the set of distinct keys.
Build the dataflow to compute the set of distinct keys .
fn build_distinct<G>(collection: Collection<G, (Row, Row)>) -> Arrangement<G, Row>
where
    G: Scope,
    G::Timestamp: Lattice,
{
    collection.reduce_abelian::<_, RowSpine<_, _, _, _>>("DistinctBy", {
        |_key, _input, output| {
            // We're pushing an empty row here because the key is implicitly added by the
            // arrangement, and the permutation logic takes care of using the key part of the
            // output.
            output.push((Row::default(), 1));
        }
    })
}
fn build_distinct < G > ( collection : Collection < G , ( Row , Row ) > ) -> Arrangement < G , Row > where G : Scope , G :: Timestamp : Lattice , { collection . reduce_abelian :: < _ , RowSpine < _ , _ , _ , _ > > ( " " , { | _key , _input , output | { // We're pushing an empty row here because the key is implicitly added by the // arrangement, and the permutation logic takes care of using the key part of the // output. output . push ( ( Row :: default ( ) , 1 ) ) ; } } ) }
Build the dataflow to compute the set of distinct keys.
Build the dataflow to compute the set of distinct keys .
collection
Collection<G, (Row, Row)>
collection
Collection<G, (Row, Row)>