]>
git.proxmox.com Git - rustc.git/blob - vendor/papergrid/src/records/iter_records.rs
1 use super::{IntoRecords, Records}
;
3 /// A [Records] implementation for any [IntoIterator].
4 #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
5 pub struct IterRecords
<I
> {
8 count_rows
: Option
<usize>,
11 impl<I
> IterRecords
<I
> {
12 /// Returns a new [IterRecords] object.
13 pub const fn new(iter
: I
, count_columns
: usize, count_rows
: Option
<usize>) -> Self {
22 impl<I
> IntoRecords
for IterRecords
<I
>
27 type IterColumns
= I
::IterColumns
;
28 type IterRows
= I
::IterRows
;
30 fn iter_rows(self) -> Self::IterRows
{
35 // why this does not work?
37 // impl<'a, I> IntoRecords for &'a IterRecords<I>
39 // &'a I: IntoRecords,
41 // type Cell = <&'a I as IntoRecords>::Cell;
42 // type IterColumns = <&'a I as IntoRecords>::IterColumns;
43 // type IterRows = <&'a I as IntoRecords>::IterRows;
45 // fn iter_rows(self) -> Self::IterRows {
46 // // (&self.iter).iter_rows()
51 impl<I
> Records
for IterRecords
<I
>
57 fn iter_rows(self) -> <Self::Iter
as IntoRecords
>::IterRows
{
61 fn count_columns(&self) -> usize {
65 fn hint_count_rows(&self) -> Option
<usize> {
70 impl<'a
, I
> Records
for &'a IterRecords
<I
>
76 fn iter_rows(self) -> <Self::Iter
as IntoRecords
>::IterRows
{
77 (&self.iter
).iter_rows()
80 fn count_columns(&self) -> usize {
84 fn hint_count_rows(&self) -> Option
<usize> {