triangulate/outputs/
list.rs1pub trait List<V> {
3 fn push(&mut self, v0: V, v1: V, v2: V);
5
6 fn len(&self) -> usize;
8
9 fn truncate(&mut self, len: usize);
11
12 fn is_empty(&self) -> bool {
14 self.len() == 0
15 }
16}
17
18impl<V> List<V> for Vec<V> {
19 fn push(&mut self, v0: V, v1: V, v2: V) {
20 self.push(v0);
21 self.push(v1);
22 self.push(v2);
23 }
24
25 fn len(&self) -> usize {
26 self.len() / 3
27 }
28
29 fn truncate(&mut self, len: usize) {
30 self.truncate(len * 3)
31 }
32}
33
34impl<V> List<V> for Vec<[V; 3]> {
35 fn push(&mut self, v0: V, v1: V, v2: V) {
36 self.push([v0, v1, v2]);
37 }
38
39 fn len(&self) -> usize {
40 self.len()
41 }
42
43 fn truncate(&mut self, len: usize) {
44 self.truncate(len)
45 }
46}
47
48impl<V> List<V> for Vec<(V, V, V)> {
49 fn push(&mut self, v0: V, v1: V, v2: V) {
50 self.push((v0, v1, v2));
51 }
52
53 fn len(&self) -> usize {
54 self.len()
55 }
56
57 fn truncate(&mut self, len: usize) {
58 self.truncate(len)
59 }
60}
61
62impl<V, L: List<V>> List<V> for &mut L {
63 fn push(&mut self, v0: V, v1: V, v2: V) {
64 (**self).push(v0, v1, v2)
65 }
66
67 fn len(&self) -> usize {
68 (**self).len()
69 }
70
71 fn truncate(&mut self, len: usize) {
72 (**self).truncate(len)
73 }
74}