Skip to content

Commit 6514b41

Browse files
committed
Require windows to be clone-able
1 parent 40e60b2 commit 6514b41

File tree

6 files changed

+10
-8
lines changed

6 files changed

+10
-8
lines changed

rust/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use alga::general::Operator;
22
use std::ops::Range;
33

44
/// An abstract data type which maintains a time-ordered sliding window.
5-
pub trait TimeWindow<Time, Value, BinOp>
5+
pub trait TimeWindow<Time, Value, BinOp>: Clone
66
where
77
Time: Ord,
88
BinOp: Operator,
@@ -18,7 +18,7 @@ where
1818
}
1919

2020
/// An abstract data type which maintains a fifo-ordered sliding window.
21-
pub trait FifoWindow<Value, BinOp>
21+
pub trait FifoWindow<Value, BinOp>: Clone
2222
where
2323
BinOp: Operator,
2424
{

rust/src/reactive/flat_fat.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use alga::general::AbstractMonoid;
22
use alga::general::Operator;
33
use std::collections::HashSet;
44

5-
pub(crate) trait FAT<Value, BinOp>
5+
pub(crate) trait FAT<Value, BinOp>: Clone
66
where
77
Value: AbstractMonoid<BinOp> + Clone,
88
BinOp: Operator,
@@ -33,6 +33,7 @@ where
3333
fn suffix(&self, i: usize) -> Value;
3434
}
3535

36+
#[derive(Clone)]
3637
pub(crate) struct FlatFAT<Value, BinOp>
3738
where
3839
Value: AbstractMonoid<BinOp> + Clone,

rust/src/reactive/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use crate::FifoWindow;
55
use alga::general::AbstractMonoid;
66
use alga::general::Operator;
77

8+
#[derive(Clone)]
89
pub struct Reactive<Value, BinOp>
910
where
1011
Value: AbstractMonoid<BinOp> + Clone,

rust/src/recalc/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
use crate::FifoWindow;
22
use alga::general::AbstractMonoid;
33
use alga::general::Operator;
4-
use std::marker::PhantomData;
54
use std::collections::VecDeque;
5+
use std::marker::PhantomData;
66

7-
#[derive(Debug)]
7+
#[derive(Clone)]
88
pub struct ReCalc<Value, BinOp>
99
where
1010
Value: AbstractMonoid<BinOp> + Clone,

rust/src/soe/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use alga::general::Operator;
44
use std::collections::VecDeque;
55
use std::marker::PhantomData;
66

7-
#[derive(Debug)]
7+
#[derive(Clone)]
88
pub struct SoE<Value, BinOp>
99
where
1010
Value: AbstractGroup<BinOp> + Clone,

rust/src/two_stacks/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use alga::general::AbstractMonoid;
33
use alga::general::Operator;
44
use std::marker::PhantomData;
55

6-
#[derive(Debug)]
6+
#[derive(Clone)]
77
struct Item<Value>
88
where
99
Value: Clone,
@@ -12,7 +12,7 @@ where
1212
val: Value,
1313
}
1414

15-
#[derive(Debug)]
15+
#[derive(Clone)]
1616
pub struct TwoStacks<Value, BinOp>
1717
where
1818
Value: AbstractMonoid<BinOp> + Clone,

0 commit comments

Comments
 (0)