pub fn rev_iter_block_roots(
        &self,
    ) -> Result<impl Iterator<Item = Result<(Hash256, Slot), Error>>, Error> {
        let head = self.head()?;
        let iter = BlockRootsIterator::owned(self.store.clone(), head.beacon_state);
        Ok(
            std::iter::once(Ok((head.beacon_block_root, head.beacon_block.slot())))
                .chain(iter)
                .map(|result| result.map_err(|e| e.into())),
        )
    }
/// Iterates across all `(block_root, slot)` pairs from the head of the chain (inclusive) to
/// the earliest reachable ancestor (may or may not be genesis).
///
/// ## Notes
///
/// `slot` always decreases by `1`.
/// - Skipped slots contain the root of the closest prior
///     non-skipped slot (identical to the way they are stored in `state.block_roots`) .
/// - Iterator returns `(Hash256, Slot)`.
/// - As this iterator starts at the `head` of the chain (viz., the best block), the first slot
///     returned may be earlier than the wall-clock slot.
Iterates across all `(block_root, slot)` pairs from the head of the chain (inclusive) to
the earliest reachable ancestor (may or may not be genesis).
Iterates across all ` ( block_root slot ) ` pairs from the head of the chain ( inclusive ) to the earliest reachable ancestor ( may or may not be genesis ) .
pub fn rev_iter_block_roots(
        &self,
    ) -> Result<impl Iterator<Item = Result<(Hash256, Slot), Error>>, Error> {
        let head = self.head()?;
        let iter = BlockRootsIterator::owned(self.store.clone(), head.beacon_state);
        Ok(
            std::iter::once(Ok((head.beacon_block_root, head.beacon_block.slot())))
                .chain(iter)
                .map(|result| result.map_err(|e| e.into())),
        )
    }
pub fn rev_iter_block_roots ( & self , ) -> Result < impl Iterator < Item = Result < ( Hash256 , Slot ) , Error > > , Error > { let head = self . head ( ) ? ; let iter = BlockRootsIterator :: owned ( self . store . clone ( ) , head . beacon_state ) ; Ok ( std :: iter :: once ( Ok ( ( head . beacon_block_root , head . beacon_block . slot ( ) ) ) ) . chain ( iter ) . map ( | result | result . map_err ( | e | e . into ( ) ) ) , ) }
Iterates across all `(block_root, slot)` pairs from the head of the chain (inclusive) to
the earliest reachable ancestor (may or may not be genesis).
Iterates across all ` ( block_root slot ) ` pairs from the head of the chain ( inclusive ) to the earliest reachable ancestor ( may or may not be genesis ) .
&self
notes
`slot` always decreases by `1`.
Skipped slots contain the root of the closest prior
non-skipped slot (identical to the way they are stored in `state.block_roots`) .
Iterator returns `(Hash256, Slot)`.
As this iterator starts at the `head` of the chain (viz., the best block), the first slot
returned may be earlier than the wall-clock slot.
` slot ` always decreases by ` 1 ` . Skipped slots contain the root of the closest prior non - skipped slot ( identical to the way they are stored in ` state . block_roots ` ) . Iterator returns ` ( Hash256 Slot ) ` . As this iterator starts at the ` head ` of the chain ( viz . the best block ) the first slot returned may be earlier than the wall - clock slot .