fn complete(&mut self) -> Option<B> {
        match replace(self, MergeState::Vacant) {
            MergeState::Vacant => None,
            MergeState::Single(batch) => batch,
            MergeState::Double(variant) => variant.complete(),
        }
    }
/// Immediately complete any merge.
///
/// The result is either a batch, if there is a non-trivial batch to return
/// or `None` if there is no meaningful batch to return. This does not
/// distinguish between Vacant entries and structurally empty batches,
/// which should be done with the `is_complete()` method.
///
/// There is the addional option of input batches.
Immediately complete any merge.
The result is either a batch, if there is a non-trivial batch to return
or `None` if there is no meaningful batch to return. This does not
distinguish between Vacant entries and structurally empty batches,
which should be done with the `is_complete()` method.

There is the addional option of input batches.
Immediately complete any merge . The result is either a batch if there is a non - trivial batch to return or ` None ` if there is no meaningful batch to return . This does not distinguish between Vacant entries and structurally empty batches which should be done with the ` is_complete () ` method . There is the addional option of input batches .
fn complete(&mut self) -> Option<B> {
        match replace(self, MergeState::Vacant) {
            MergeState::Vacant => None,
            MergeState::Single(batch) => batch,
            MergeState::Double(variant) => variant.complete(),
        }
    }
fn complete ( & mut self ) -> Option < B > { match replace ( self , MergeState :: Vacant ) { MergeState :: Vacant => None , MergeState :: Single ( batch ) => batch , MergeState :: Double ( variant ) => variant . complete ( ) , } }
Immediately complete any merge.
Immediately complete any merge .
&mut self