Mercurial > public > mercurial-scm > hg-stable
view rust/hg-cpython/src/conversion.rs @ 44304:dbbae122f5e4
manifest: remove optional default= argument on flags(path)
It had only one caller inside manifest.py, and treemanifest was
actually incorrectly implemented. treemanifest is still missing the
fastdelta() method from the interface (and so doesn't yet conform),
but this is at least progress.
Differential Revision: https://phab.mercurial-scm.org/D8069
author | Augie Fackler <augie@google.com> |
---|---|
date | Mon, 03 Feb 2020 22:16:36 -0500 |
parents | 33fe96a5c522 |
children | c7fb9b74e753 |
line wrap: on
line source
// conversion.rs // // Copyright 2019 Georges Racinet <georges.racinet@octobus.net> // // This software may be used and distributed according to the terms of the // GNU General Public License version 2 or any later version. //! Bindings for the hg::ancestors module provided by the //! `hg-core` crate. From Python, this will be seen as `rustext.ancestor` use cpython::{ObjectProtocol, PyObject, PyResult, Python}; use hg::Revision; use std::iter::FromIterator; /// Utility function to convert a Python iterable into various collections /// /// We need this in particular to feed to various methods of inner objects /// with `impl IntoIterator<Item=Revision>` arguments, because /// a `PyErr` can arise at each step of iteration, whereas these methods /// expect iterables over `Revision`, not over some `Result<Revision, PyErr>` pub fn rev_pyiter_collect<C>(py: Python, revs: &PyObject) -> PyResult<C> where C: FromIterator<Revision>, { revs.iter(py)? .map(|r| r.and_then(|o| o.extract::<Revision>(py))) .collect() }