@@ -170,20 +170,27 @@ pub trait TableColumn<I, T>:
170
170
/// Get the underlying slice
171
171
fn as_slice ( & self ) -> & [ T ] ;
172
172
173
- /// The "standard" get function
174
- fn get ( & self , at : usize ) -> Option < & T > ;
175
-
176
173
/// Get with a table row identifier such as [`crate::NodeId`]
177
174
fn get_with_id ( & self , at : I ) -> Option < & T > ;
178
175
176
+ /// The "standard" get function
177
+ fn get ( & self , at : usize ) -> Option < & T > {
178
+ self . as_slice ( ) . get ( at)
179
+ }
180
+
179
181
/// Get with [`crate::SizeType`]
180
- fn get_with_size_type ( & self , at : crate :: SizeType ) -> Option < & T > ;
182
+ fn get_with_size_type ( & self , at : crate :: SizeType ) -> Option < & T > {
183
+ self . as_slice ( ) . get ( usize:: try_from ( at) . ok ( ) ?)
184
+ }
181
185
182
186
/// Iterator over the data.
183
187
fn iter < ' a , ' b > ( & ' a self ) -> impl Iterator < Item = & ' b T >
184
188
where
185
189
' a : ' b ,
186
- T : ' b ;
190
+ T : ' b ,
191
+ {
192
+ self . as_slice ( ) . iter ( )
193
+ }
187
194
188
195
/// Column length
189
196
fn len ( & self ) -> usize {
@@ -216,23 +223,7 @@ where
216
223
self . 0
217
224
}
218
225
219
- fn get ( & self , at : usize ) -> Option < & T > {
220
- self . 0 . get ( at)
221
- }
222
-
223
226
fn get_with_id ( & self , at : I ) -> Option < & T > {
224
227
self . 0 . get ( at. try_into ( ) . ok ( ) ?)
225
228
}
226
-
227
- fn get_with_size_type ( & self , at : crate :: SizeType ) -> Option < & T > {
228
- self . 0 . get ( usize:: try_from ( at) . ok ( ) ?)
229
- }
230
-
231
- fn iter < ' a , ' b > ( & ' a self ) -> impl Iterator < Item = & ' b T >
232
- where
233
- ' a : ' b ,
234
- T : ' b ,
235
- {
236
- self . 0 . iter ( )
237
- }
238
229
}
0 commit comments