Open the existing segment at `offset` for reading. Unlike [`resume_segment_writer`], this does not traverse the segment. It does, however, attempt to read the segment header and checks that the log format version and checksum algorithm are compatible.
(
repo: &R,
max_log_format_version: u8,
offset: u64,
)
| 423 | /// does, however, attempt to read the segment header and checks that the log |
| 424 | /// format version and checksum algorithm are compatible. |
| 425 | pub fn open_segment_reader<R: Repo>( |
| 426 | repo: &R, |
| 427 | max_log_format_version: u8, |
| 428 | offset: u64, |
| 429 | ) -> io::Result<Reader<R::SegmentReader>> { |
| 430 | let segment = segment_label(repo, offset); |
| 431 | debug!("open segment reader for {segment}"); |
| 432 | let storage = repo |
| 433 | .open_segment_reader(offset) |
| 434 | .map_err(|source| with_segment_context("opening segment for read", repo, offset, source))?; |
| 435 | Reader::new(max_log_format_version, offset, storage) |
| 436 | .map_err(|source| with_segment_context("reading segment header", repo, offset, source)) |
| 437 | } |
| 438 | |
| 439 | /// Obtain the canonical [CompressOnce] compressor for segments. |
| 440 | /// |
searching dependent graphs…