From 43fca5dad717154e8cb46ce1379c6ef0be034fee Mon Sep 17 00:00:00 2001 From: Ohad Ravid <ohad.rv@gmail.com> Date: Sun, 27 Jun 2021 14:36:12 +0300 Subject: [PATCH] Make `ToPyObject` impl for `HashSet` accept non-default hashers. --- CHANGELOG.md | 1 + src/types/set.rs | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 56da0781c15..bfabcc32780 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -62,6 +62,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Use `METH_FASTCALL` argument passing convention, when possible, to improve `#[pyfunction]` and method performance. [#1619](https://github.com/PyO3/pyo3/pull/1619), [#1660](https://github.com/PyO3/pyo3/pull/1660) - Make the `Py_tracefunc` parameter of the `PyEval_SetProfile`/`PyEval_SetTrace` functions optional. [#1692](https://github.com/PyO3/pyo3/pull/1692) +- Make `ToPyObject` impl for `HashSet` accept non-default hashers. [#1702](https://github.com/PyO3/pyo3/pull/1702) ### Removed diff --git a/src/types/set.rs b/src/types/set.rs index dc5246419d6..6b664526343 100644 --- a/src/types/set.rs +++ b/src/types/set.rs @@ -183,9 +183,10 @@ impl<'a> std::iter::IntoIterator for &'a PySet { } } -impl<T> ToPyObject for collections::HashSet<T> +impl<T, S> ToPyObject for collections::HashSet<T, S> where T: hash::Hash + Eq + ToPyObject, + S: hash::BuildHasher + Default, { fn to_object(&self, py: Python) -> PyObject { let set = PySet::new::<T>(py, &[]).expect("Failed to construct empty set");