| 292 | } |
| 293 | |
| 294 | fn open_segment_writer(&self, offset: u64) -> io::Result<Self::SegmentWriter> { |
| 295 | // NOTE: We previously used `O_APPEND`, but Windows demands `write(true)` |
| 296 | // so that we can truncate trailing garbage in [super::resume_segment_writer]. |
| 297 | let mut file = File::options().read(true).write(true).open(self.segment_path(offset))?; |
| 298 | file.seek(io::SeekFrom::End(0))?; |
| 299 | Ok(file) |
| 300 | } |
| 301 | |
| 302 | fn segment_file_path(&self, offset: u64) -> Option<String> { |
| 303 | Some(self.segment_path(offset).0.to_string_lossy().into_owned()) |