Mercurial > hg
changeset 51966:fb4d49c52c06
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.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 25 Sep 2024 21:43:21 +0200 |
parents | 145f66ea1664 |
children | 6204fc81a291 |
files | rust/hg-cpython/src/revlog.rs |
diffstat | 1 files changed, 11 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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) }