dataflow/collumn.rs
1use super::TableEntity;
2
3pub struct DataColumn<'a> {
4 index: i64,
5 // table: DataTable,
6 /// The name of the column.
7 name: &'a str,
8}
9
10impl<'a> TableEntity for DataColumn<'a> {}
11
12impl<'a> DataColumn<'a> {
13 fn new(name: &'a str) -> Self {
14 Self { index: 0, name }
15 }
16}
17
18// pub struct DataColumnCollection<M, D>
19// where
20// M: fmt::Display,
21// {
22// // base: Vec<DataColumn<'a>>,
23// // table: DataTable<'a, M, D>,
24// }
25
26// impl<M, D> DataColumnCollection<M, D>
27// where
28// M: fmt::Display,
29// {
30// pub fn new(table: &DataTable<M, D>) -> Self {
31
32// Self {
33// // base: Default::default(),
34// // table
35// }
36// }
37// }
38
39// impl<'a, M, D> DataCollectionBase<DataColumn<'a>> for DataColumnCollection<M, D>
40// where
41// M: fmt::Display,
42// {
43// fn release_items(&self, start: i64, end: i64) {
44// // while (start < end) {
45// // base[start].table = null;
46// // start++;
47// // }
48// unimplemented!()
49// }
50
51// fn update_items(&self, start: i64) {
52// // let len = length;
53// // while (start < len) {
54// // base[start]
55// // ..table = table
56// // ..index = start++;
57// // }
58// unimplemented!()
59// }
60
61// // @override
62// // Iterator<E> get iterator => DataCollectionIterator<E>(this);
63
64// // @override
65// // E get first => base.first;
66
67// // @override
68// // E get last => base.last;
69
70// // @override
71// // E get single => base.single;
72
73// // @override
74// // i64 get length => base.length;
75
76// // fn set length(&self, i64 value) {
77// // // TODO: implement.
78// // throw UnimplementedError();
79// // }
80
81// // @override
82// // E operator [](i64 index) => base[index];
83
84// // @override
85// // operator []=(i64 index, E value) {
86// // // TODO: implement.
87// // throw UnimplementedError();
88// // }
89
90// fn add(&self, value: DataColumn<'a>) {
91// // let index = length;
92// // base.add(value);
93// // updateItems(index);
94// // table.onRowsOrColumnsInserted(this, index, 1);
95// unimplemented!()
96// }
97
98// // fn add_all(&self, iterable: Iterator<DataColumn<'a>>) {
99// // // // let index = length;
100// // // // base.addAll(iterable);
101// // // // updateItems(index);
102// // // // table.onRowsOrColumnsInserted(this, index, iterable.length);
103// // }
104
105// // @override
106// // E elementAt(&self, i64 index) => base[index];
107
108// fn insert(&self, index: i64, value: DataColumn<'a>) {
109// // base.insert(index, value);
110// // updateItems(index);
111// // table.onRowsOrColumnsInserted(this, index, 1);
112// unimplemented!()
113// }
114
115// // fn insert_all(&self, index: i64, iterable: Iterable<DataColumn<'a>>) {
116// // // base.insertAll(index, iterable);
117// // // updateItems(index);
118// // // table.onRowsOrColumnsInserted(this, index, iterable.length);
119// // }
120
121// fn remove(&self, element: DataColumn<'a>) -> bool {
122// // let index = base.indexOf(element);
123// // if (index == -1) return false;
124// // removeAt(index);
125// // return true;
126// unimplemented!()
127// }
128
129// fn clear(&self) {
130// // let len = length;
131// // if (len == 0) return;
132// // releaseItems(0, len);
133// // base.clear();
134// // table.onRowsOrColumnsRemoved(this, 0, len);
135// unimplemented!()
136// }
137
138// fn remove_at(&self, index: i64) -> DataColumn<'a> {
139// // let e = base.removeAt(index);
140// // e.table = null;
141// // updateItems(index);
142// // table.onRowsOrColumnsRemoved(this, index, 1);
143// // return e;
144// unimplemented!()
145// }
146
147// fn remove_last(&self) -> DataColumn<'a> {
148// // let e = base.removeLast();
149// // e.table = null;
150// // table.onRowsOrColumnsRemoved(this, length, 1);
151// // return e;
152// unimplemented!()
153// }
154
155// fn remove_range(&self, start: i64, end: i64) {
156// // releaseItems(start, end);
157// // base.remove_range(start, end);
158// // updateItems(start);
159// // table.onRowsOrColumnsRemoved(this, start, end - start);
160// unimplemented!()
161// }
162
163// // DataColumnCollection(DataTable table) : super(table);
164
165// // /// Adds a new column given its [name] and [type].
166// // fn add2(&self, name: String, dtype: Type) {
167// // // add(DataColumn(name, dtype));
168// // }
169// }