Mercurial > hg
diff rust/hg-cpython/src/dirstate/dirs_multiset.rs @ 42887:706104dcb2c8
rust-cpython: replace dyn Iterator<..> of sequence with concrete type
We wouldn't care the cost of the dynamic dispatch, but I feel a concrete
type helps understanding error messages.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 08 Sep 2019 12:07:19 +0900 |
parents | 64e28b891796 |
children | ea91a126c803 |
line wrap: on
line diff
--- a/rust/hg-cpython/src/dirstate/dirs_multiset.rs Sun Sep 08 12:00:26 2019 +0900 +++ b/rust/hg-cpython/src/dirstate/dirs_multiset.rs Sun Sep 08 12:07:19 2019 +0900 @@ -18,7 +18,10 @@ use crate::dirstate::extract_dirstate; use crate::ref_sharing::{PySharedRefCell, PySharedState}; -use hg::{DirsMultiset, DirstateMapError, DirstateParseError, EntryState}; +use hg::{ + DirsMultiset, DirsMultisetIter, DirstateMapError, DirstateParseError, + EntryState, +}; py_class!(pub class Dirs |py| { data inner: PySharedRefCell<DirsMultiset>; @@ -90,7 +93,7 @@ DirsMultisetKeysIterator::create_instance( py, RefCell::new(Some(leak_handle)), - RefCell::new(Box::new(leaked_ref.iter())), + RefCell::new(leaked_ref.iter()), ) } @@ -118,10 +121,10 @@ } } -py_shared_sequence_iterator!( +py_shared_iterator_impl!( DirsMultisetKeysIterator, DirsMultisetLeakedRef, - Vec<u8>, + DirsMultisetIter<'static>, Dirs::translate_key, Option<PyBytes> );