comparison rust/hg-cpython/src/revlog.rs @ 51966:e5dcaf6d4ac0

head-revs: move hg-cpython's inner_headrevsfiltered closer to inner_headrevs This is pure code movement, it make a coming changesets significantly clearer.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 26 Sep 2024 01:50:36 +0200
parents 8060257fd918
children 69bfd6b242ed
comparison
equal deleted inserted replaced
51965:22da1dc97281 51966:e5dcaf6d4ac0
837 .expect("head revs should be cached") 837 .expect("head revs should be cached")
838 .clone_ref(py) 838 .clone_ref(py)
839 .into_object()) 839 .into_object())
840 } 840 }
841 841
842 fn inner_headrevsfiltered(
843 &self,
844 py: Python,
845 filtered_revs: &PyObject,
846 ) -> PyResult<PyObject> {
847 let index = &*self.index(py).borrow();
848 let filtered_revs = rev_pyiter_collect(py, filtered_revs, index)?;
849
850 if let Some(new_heads) = index
851 .head_revs_filtered(&filtered_revs, true)
852 .map_err(|e| graph_error(py, e))?
853 {
854 self.cache_new_heads_py_list(&new_heads, py);
855 }
856
857 Ok(self
858 .head_revs_py_list(py)
859 .borrow()
860 .as_ref()
861 .expect("head revs should be cached")
862 .clone_ref(py)
863 .into_object())
864 }
865
842 fn check_revision( 866 fn check_revision(
843 index: &hg::index::Index, 867 index: &hg::index::Index,
844 rev: UncheckedRevision, 868 rev: UncheckedRevision,
845 py: Python, 869 py: Python,
846 ) -> PyResult<Revision> { 870 ) -> PyResult<Revision> {
867 let removed: Vec<_> = 891 let removed: Vec<_> =
868 removed.into_iter().map(PyRevision::from).collect(); 892 removed.into_iter().map(PyRevision::from).collect();
869 let added: Vec<_> = added.into_iter().map(PyRevision::from).collect(); 893 let added: Vec<_> = added.into_iter().map(PyRevision::from).collect();
870 let res = (removed, added).to_py_object(py).into_object(); 894 let res = (removed, added).to_py_object(py).into_object();
871 Ok(res) 895 Ok(res)
872 }
873
874 fn inner_headrevsfiltered(
875 &self,
876 py: Python,
877 filtered_revs: &PyObject,
878 ) -> PyResult<PyObject> {
879 let index = &*self.index(py).borrow();
880 let filtered_revs = rev_pyiter_collect(py, filtered_revs, index)?;
881
882 if let Some(new_heads) = index
883 .head_revs_filtered(&filtered_revs, true)
884 .map_err(|e| graph_error(py, e))?
885 {
886 self.cache_new_heads_py_list(&new_heads, py);
887 }
888
889 Ok(self
890 .head_revs_py_list(py)
891 .borrow()
892 .as_ref()
893 .expect("head revs should be cached")
894 .clone_ref(py)
895 .into_object())
896 } 896 }
897 897
898 fn cache_new_heads_node_ids_py_list( 898 fn cache_new_heads_node_ids_py_list(
899 &self, 899 &self,
900 new_heads: &[Revision], 900 new_heads: &[Revision],