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// }