415 self_ref.docket.take(); |
415 self_ref.docket.take(); |
416 self_ref.nodemap_mmap.take(); |
416 self_ref.nodemap_mmap.take(); |
417 self_ref.head_revs_py_list.take(); |
417 self_ref.head_revs_py_list.take(); |
418 self_ref.head_node_ids_py_list.take(); |
418 self_ref.head_node_ids_py_list.take(); |
419 Ok(()) |
419 Ok(()) |
|
420 } |
|
421 |
|
422 /// return the raw binary string representing a revision |
|
423 fn _index_entry_binary( |
|
424 slf: &Bound<'_, Self>, |
|
425 rev: PyRevision, |
|
426 ) -> PyResult<Py<PyBytes>> { |
|
427 let rev: UncheckedRevision = rev.into(); |
|
428 Self::with_index_read(slf, |idx| { |
|
429 idx.check_revision(rev) |
|
430 .and_then(|r| idx.entry_binary(r)) |
|
431 .map(|rust_bytes| PyBytes::new(slf.py(), rust_bytes).unbind()) |
|
432 .ok_or_else(|| rev_not_in_index(rev)) |
|
433 }) |
420 } |
434 } |
421 |
435 |
422 /// return a binary packed version of the header |
436 /// return a binary packed version of the header |
423 fn _index_pack_header( |
437 fn _index_pack_header( |
424 slf: &Bound<'_, Self>, |
438 slf: &Bound<'_, Self>, |