Skip to content

Commit 2ca878b

Browse files
frankmcsherrypetrosagg
authored andcommitted
provide manual clone implementations
1 parent d4679be commit 2ca878b

File tree

4 files changed

+38
-5
lines changed

4 files changed

+38
-5
lines changed

src/trace/wrappers/enter.rs

+9-1
Original file line numberDiff line numberDiff line change
@@ -113,12 +113,20 @@ where
113113

114114

115115
/// Wrapper to provide batch to nested scope.
116-
#[derive(Clone)]
117116
pub struct BatchEnter<B, TInner> {
118117
batch: B,
119118
description: Description<TInner>,
120119
}
121120

121+
impl<B: Clone, TInner: Clone> Clone for BatchEnter<B, TInner> {
122+
fn clone(&self) -> Self {
123+
BatchEnter {
124+
batch: self.batch.clone(),
125+
description: self.description.clone(),
126+
}
127+
}
128+
}
129+
122130
impl<B, TInner> BatchReader for BatchEnter<B, TInner>
123131
where
124132
B: BatchReader,

src/trace/wrappers/enter_at.rs

+10-1
Original file line numberDiff line numberDiff line change
@@ -131,13 +131,22 @@ where
131131

132132

133133
/// Wrapper to provide batch to nested scope.
134-
#[derive(Clone)]
135134
pub struct BatchEnter<B, TInner, F> {
136135
batch: B,
137136
description: Description<TInner>,
138137
logic: F,
139138
}
140139

140+
impl<B: Clone, TInner: Clone, F: Clone> Clone for BatchEnter<B, TInner, F> {
141+
fn clone(&self) -> Self {
142+
BatchEnter {
143+
batch: self.batch.clone(),
144+
description: self.description.clone(),
145+
logic: self.logic.clone(),
146+
}
147+
}
148+
}
149+
141150
impl<B, TInner, F> BatchReader for BatchEnter<B, TInner, F>
142151
where
143152
B: BatchReader,

src/trace/wrappers/filter.rs

+9-1
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,20 @@ where
7676

7777

7878
/// Wrapper to provide batch to nested scope.
79-
#[derive(Clone)]
8079
pub struct BatchFilter<B, F> {
8180
batch: B,
8281
logic: F,
8382
}
8483

84+
impl<B: Clone, F: Clone> Clone for BatchFilter<B, F> {
85+
fn clone(&self) -> Self {
86+
BatchFilter {
87+
batch: self.batch.clone(),
88+
logic: self.logic.clone(),
89+
}
90+
}
91+
}
92+
8593
impl<B, F> BatchReader for BatchFilter<B, F>
8694
where
8795
B: BatchReader,

src/trace/wrappers/frontier.rs

+10-2
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,21 @@ where
8383

8484

8585
/// Wrapper to provide batch to nested scope.
86-
#[derive(Clone)]
8786
pub struct BatchFrontier<B: BatchReader> {
8887
batch: B,
8988
frontier: Antichain<B::Time>,
9089
}
9190

92-
impl<B: BatchReader> BatchReader for BatchFrontier<B>
91+
impl<B: BatchReader+Clone> Clone for BatchFrontier<B> where B::Time: Clone {
92+
fn clone(&self) -> Self {
93+
BatchFrontier {
94+
batch: self.batch.clone(),
95+
frontier: self.frontier.to_owned(),
96+
}
97+
}
98+
}
99+
100+
impl<B> BatchReader for BatchFrontier<B>
93101
where
94102
B: BatchReader,
95103
B::Time: Timestamp+Lattice,

0 commit comments

Comments
 (0)