pub fn consolidate<B>(&self) -> Stream<Circuit<P>, B>
    where
        B: TryFrom<T::Batch> + Clone + 'static,
    {
        self.circuit()
            .cache_get_or_insert_with(ConsolidateId::new(self.local_node_id()), || {
                self.circuit().add_unary_operator_with_preference(
                    Consolidate::new(),
                    self,
                    OwnershipPreference::STRONGLY_PREFER_OWNED,
                )
            })
            .clone()
    }
// TODO: drop the `Time = ()` requirement?
/// Consolidate a trace into a single batch.
///
/// Each element in the input streams is a trace, consisting of multiple
/// batches of updates.  This operator consolidates the trace into a
/// single batch, which uses less memory and can be handled more
/// efficiently by most operators than the trace.
///
/// This operator is typically attached to the output of a nested circuit
/// computed as the sum of deltas across all iterations of the circuit.
/// Once the iteration has converged (e.g., reaching a fixed point) is a
/// good time to consolidate the output.
drop the `Time = ()` requirement.
Consolidate a trace into a single batch.

Each element in the input streams is a trace, consisting of multiple
batches of updates.  This operator consolidates the trace into a
single batch, which uses less memory and can be handled more
efficiently by most operators than the trace.

This operator is typically attached to the output of a nested circuit
computed as the sum of deltas across all iterations of the circuit.
Once the iteration has converged  is a
good time to consolidate the output.
drop the ` Time = () ` requirement . Consolidate a trace into a single batch . Each element in the input streams is a trace consisting of multiple batches of updates . This operator consolidates the trace into a single batch which uses less memory and can be handled more efficiently by most operators than the trace . This operator is typically attached to the output of a nested circuit computed as the sum of deltas across all iterations of the circuit . Once the iteration has converged is a good time to consolidate the output .
pub fn consolidate<B>(&self) -> Stream<Circuit<P>, B>
    where
        B: TryFrom<T::Batch> + Clone + 'static,
    {
        self.circuit()
            .cache_get_or_insert_with(ConsolidateId::new(self.local_node_id()), || {
                self.circuit().add_unary_operator_with_preference(
                    Consolidate::new(),
                    self,
                    OwnershipPreference::STRONGLY_PREFER_OWNED,
                )
            })
            .clone()
    }
pub fn consolidate < B > ( & self ) -> Stream < Circuit < P > , B > where B : TryFrom < T :: Batch > + Clone + ' static , { self . circuit ( ) . cache_get_or_insert_with ( ConsolidateId :: new ( self . local_node_id ( ) ) , | | { self . circuit ( ) . add_unary_operator_with_preference ( Consolidate :: new ( ) , self , OwnershipPreference :: STRONGLY_PREFER_OWNED , ) } ) . clone ( ) }
TODO: drop the `Time = ()` requirement?
TODO : drop the ` Time = () ` requirement?
&self