pub(crate) fn iter_from(&self, lsn: Lsn) -> LogIter {
        trace!("iterating from lsn {}", lsn);
        let segment_size = self.config.segment_size;
        let segment_base_lsn = lsn / segment_size as Lsn * segment_size as Lsn;
        let min_lsn = segment_base_lsn + SEG_HEADER_LEN as Lsn;

        // corrected_lsn accounts for the segment header length
        let corrected_lsn = std::cmp::max(lsn, min_lsn);

        let segment_iter =
            self.with_sa(|sa| sa.segment_snapshot_iter_from(corrected_lsn));

        LogIter {
            config: self.config.clone(),
            max_lsn: self.stable(),
            cur_lsn: corrected_lsn,
            segment_base: None,
            segment_iter,
        }
    }
/// Return an iterator over the log, starting with
/// a specified offset.
Return an iterator over the log, starting with
a specified offset.
Return an iterator over the log starting with a specified offset .
pub(crate) fn iter_from(&self, lsn: Lsn) -> LogIter {
        trace!("iterating from lsn {}", lsn);
        let segment_size = self.config.segment_size;
        let segment_base_lsn = lsn / segment_size as Lsn * segment_size as Lsn;
        let min_lsn = segment_base_lsn + SEG_HEADER_LEN as Lsn;
        // corrected_lsn accounts for the segment header length
        let corrected_lsn = std::cmp::max(lsn, min_lsn);
        let segment_iter =
            self.with_sa(|sa| sa.segment_snapshot_iter_from(corrected_lsn));
        LogIter {
            config: self.config.clone(),
            max_lsn: self.stable(),
            cur_lsn: corrected_lsn,
            segment_base: None,
            segment_iter,
        }
    }
pub ( crate ) fn iter_from ( & self , lsn : Lsn ) -> LogIter { trace ! ( " " lsn ) ; let segment_size = self . config . segment_size ; let segment_base_lsn = lsn / segment_size as Lsn * segment_size as Lsn ; let min_lsn = segment_base_lsn + SEG_HEADER_LEN as Lsn ; // corrected_lsn accounts for the segment header length let corrected_lsn = std :: cmp :: max ( lsn , min_lsn ) ; let segment_iter = self . with_sa ( | sa | sa . segment_snapshot_iter_from ( corrected_lsn ) ) ; LogIter { config : self . config . clone ( ) , max_lsn : self . stable ( ) , cur_lsn : corrected_lsn , segment_base : None , segment_iter , } }
Return an iterator over the log, starting with
a specified offset.
Return an iterator over the log starting with a specified offset .
&self
lsn
Lsn