equal
deleted
inserted
replaced
90 } |
90 } |
91 } |
91 } |
92 }) |
92 }) |
93 } |
93 } |
94 def __iter__(&self) -> PyResult<DirsMultisetKeysIterator> { |
94 def __iter__(&self) -> PyResult<DirsMultisetKeysIterator> { |
95 let mut leak_handle = |
95 let leaked_ref = self.inner_shared(py).leak_immutable()?; |
96 unsafe { self.inner_shared(py).leak_immutable()? }; |
|
97 let leaked_ref = leak_handle.data.take().unwrap(); |
|
98 DirsMultisetKeysIterator::from_inner( |
96 DirsMultisetKeysIterator::from_inner( |
99 py, |
97 py, |
100 leak_handle, |
98 unsafe { leaked_ref.map(py, |o| o.iter()) }, |
101 leaked_ref.iter(), |
|
102 ) |
99 ) |
103 } |
100 } |
104 |
101 |
105 def __contains__(&self, item: PyObject) -> PyResult<bool> { |
102 def __contains__(&self, item: PyObject) -> PyResult<bool> { |
106 Ok(self.inner(py).borrow().contains(HgPath::new( |
103 Ok(self.inner(py).borrow().contains(HgPath::new( |
124 } |
121 } |
125 } |
122 } |
126 |
123 |
127 py_shared_iterator!( |
124 py_shared_iterator!( |
128 DirsMultisetKeysIterator, |
125 DirsMultisetKeysIterator, |
129 PyLeakedRef<&'static DirsMultiset>, |
126 PyLeakedRef<DirsMultisetIter<'static>>, |
130 DirsMultisetIter<'static>, |
|
131 Dirs::translate_key, |
127 Dirs::translate_key, |
132 Option<PyBytes> |
128 Option<PyBytes> |
133 ); |
129 ); |