1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
use Hash;
use fmt;
// impl<T, L: Label> Labeled<T, L> {
// pub fn new(t: T, label: L) -> Labeled<T, L> {
// Labeled {
// t: t,
// label: label
// }
// }
// }
//
// impl<T: Clone, L: Label> Clone for Labeled<T, L> {
// fn clone(&self) -> Self {
// Labeled {
// t: self.t.clone(),
// label: self.label.clone()
// }
// }
// }
//
// impl<T: Hash, L: Label> Hash for Labeled<T, L> {
// fn hash<H: Hasher>(&self, state: &mut H) {
// self.t.hash(state);
// self.label.hash(state);
// }
// }
//
// impl<T: PartialEq, L: Label> PartialEq for Labeled<T, L> {
// fn eq(&self, other: &Labeled<T, L>) -> bool {
// self.label == other.label && self.t == other.t
// }
// }
//
// impl<T: Eq, L: Label> Eq for Labeled<T, L> { }