rust-cpython: also accept the `filteredrevs` argument in index.headrevs
The C version have been accepting this argument since Mercurial 3.2, lets align the Rust index here. This will make it possible to simplify the code in later changesets.
--- a/rust/hg-cpython/src/revlog.rs Wed Sep 25 16:38:31 2024 +0200
+++ b/rust/hg-cpython/src/revlog.rs Wed Sep 25 21:43:21 2024 +0200
@@ -304,8 +304,17 @@
}
/// get head revisions
- def headrevs(&self) -> PyResult<PyObject> {
- let rust_res = self.inner_headrevs(py)?;
+ def headrevs(&self, *args, **_kw) -> PyResult<PyObject> {
+ let filtered_revs = match &args.len(py) {
+ 0 => Ok(py.None()),
+ 1 => Ok(args.get_item(py, 0)),
+ _ => Err(PyErr::new::<cpython::exc::TypeError, _>(py, "too many arguments")),
+ }?;
+ let rust_res = if filtered_revs.is_none(py) {
+ self.inner_headrevs(py)
+ } else {
+ self.inner_headrevsfiltered(py, &filtered_revs)
+ }?;
Ok(rust_res)
}