diff --git a/szurubooru-client/src/py/mod.rs b/szurubooru-client/src/py/mod.rs index f49ad0c..dfdc2b4 100644 --- a/szurubooru-client/src/py/mod.rs +++ b/szurubooru-client/src/py/mod.rs @@ -1,5 +1,6 @@ use crate::models::PagedSearchResult; use pyo3::prelude::*; +use pyo3::types::PyList; pub mod asynchronous; pub mod synchronous; @@ -11,7 +12,7 @@ pub struct PyPagedSearchResult { pub offset: u32, pub limit: u32, pub total: u32, - pub results: PyObject, + pub results: Py, } #[cfg_attr(all(feature = "python"), pymethods)] @@ -23,12 +24,16 @@ impl PyPagedSearchResult { impl> From> for PyPagedSearchResult { fn from(value: PagedSearchResult) -> Self { - Python::with_gil(|py| PyPagedSearchResult { - query: value.query, - offset: value.offset, - limit: value.limit, - total: value.total, - results: value.results.into_py(py), + Python::with_gil(|py| { + let list = + PyList::new_bound(py, value.results.into_iter().map(|v| v.into_py(py))).unbind(); + PyPagedSearchResult { + query: value.query, + offset: value.offset, + limit: value.limit, + total: value.total, + results: list, + } }) } }