1//! The module contains a [Records] abstraction of a [`Grid`] trait and its implementers.
2//!
3//! [`Grid`]: crate::grid::iterable::Grid
4
5mod exact_records;
6mod into_records;
7mod iter_records;
8mod peekable_records;
9
10pub use exact_records::ExactRecords;
11pub use into_records::IntoRecords;
12pub use iter_records::IterRecords;
13pub use peekable_records::PeekableRecords;
14
15#[cfg(feature = "std")]
16pub mod vec_records;
17
18/// Records represents table data.
19pub trait Records {
20 /// Iterator which goes over rows.
21 type Iter: IntoRecords;
22
23 /// Returns a iterator over rows.
24 fn iter_rows(self) -> <Self::Iter as IntoRecords>::IterRows;
25
26 /// Returns count of columns in the records.
27 fn count_columns(&self) -> usize;
28
29 /// Hint amount of rows in the records.
30 fn hint_count_rows(&self) -> Option<usize>;
31}
32