| 216 | } |
| 217 | |
| 218 | pub fn reset(mut self) -> io::Result<Self> { |
| 219 | info!("hard reset"); |
| 220 | |
| 221 | self.panicked = true; |
| 222 | self.tail.reserve(1); |
| 223 | self.tail.push(self.head.min_tx_offset); |
| 224 | for segment in self.tail.iter().rev() { |
| 225 | debug!("removing segment {segment}"); |
| 226 | self.repo.remove_segment(*segment)?; |
| 227 | } |
| 228 | // Prevent finalizer from running by not updating self.panicked. |
| 229 | |
| 230 | Self::open(self.repo.clone(), self.opts) |
| 231 | } |
| 232 | |
| 233 | pub fn reset_to(mut self, offset: u64) -> io::Result<Self> { |
| 234 | info!("reset to {offset}"); |