Skip to content

Commit 000bc86

Browse files
committed
Resolves conflicts in sum.rs
1 parent 88a46d7 commit 000bc86

File tree

1 file changed

+11
-10
lines changed
  • amadeus-core/src/par_sink

1 file changed

+11
-10
lines changed

amadeus-core/src/par_sink/sum.rs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
use derive_new::new;
22
use educe::Educe;
3-
use replace_with::replace_with_or_abort;
3+
use replace_with::{replace_with, replace_with_or_abort};
44
use serde::{Deserialize, Serialize};
5-
use std::{iter, marker::PhantomData, mem};
5+
use std::{iter, marker::PhantomData};
66

77
use super::{folder_par_sink, FolderSync, FolderSyncReducer, ParallelPipe, ParallelSink};
88

@@ -44,14 +44,15 @@ where
4444

4545
#[inline(always)]
4646
fn zero(&mut self) -> Self::Done {
47-
iter::empty::<B>().sum()
47+
B::sum(iter::empty::<B>())
4848
}
4949
#[inline(always)]
50-
fn push(&mut self, state: &mut Self::State, item: Item) {
51-
let zero = iter::empty::<B>().sum();
52-
let left = mem::replace(state, zero);
53-
let right = iter::once(item).sum::<B>();
54-
*state = B::sum(iter::once(left).chain(iter::once(right)));
50+
fn push(&mut self, state: &mut Self::Done, item: Item) {
51+
let default = || B::sum(iter::empty::<B>());
52+
replace_with(state, default, |left| {
53+
let right = iter::once(item).sum::<B>();
54+
B::sum(iter::once(left).chain(iter::once(right)))
55+
})
5556
}
5657

5758
#[inline(always)]
@@ -79,11 +80,11 @@ where
7980
type Done = Self::State;
8081

8182
#[inline(always)]
82-
fn zero(&mut self) -> Self::State {
83+
fn zero(&mut self) -> Self::Done {
8384
self.zero.take().unwrap()
8485
}
8586
#[inline(always)]
86-
fn push(&mut self, state: &mut Self::State, item: Item) {
87+
fn push(&mut self, state: &mut Self::Done, item: Item) {
8788
replace_with_or_abort(state, |left| {
8889
let right = iter::once(item).sum::<Option<Item>>().unwrap();
8990
<Option<Item> as iter::Sum<Item>>::sum(iter::once(left).chain(iter::once(right)))

0 commit comments

Comments
 (0)