Fix some build errors
This commit is contained in:
parent
814a2ac720
commit
6316ddc28b
|
@ -89,7 +89,7 @@ pub trait ToPyObject<'p> {
|
|||
///
|
||||
/// In cases where the result does not depend on the `'prepared` lifetime,
|
||||
/// the inherent method `PyObject::extract()` can be used.
|
||||
pub trait ExtractPyObject<'python, 'source, 'prepared> {
|
||||
pub trait ExtractPyObject<'python, 'source, 'prepared> : Sized {
|
||||
type Prepared;
|
||||
|
||||
fn prepare_extract(obj: &'source PyObject<'python>) -> PyResult<'python, Self::Prepared>;
|
||||
|
@ -97,8 +97,10 @@ pub trait ExtractPyObject<'python, 'source, 'prepared> {
|
|||
fn extract(prepared: &'prepared Self::Prepared) -> PyResult<'python, Self>;
|
||||
}
|
||||
|
||||
impl <'python, 'source, 'prepared, T> ExtractPyObject<'python, 'source, 'prepared>
|
||||
for T where T: PythonObjectWithCheckedDowncast<'python> {
|
||||
impl <'python, 'source, 'prepared, T> ExtractPyObject<'python, 'source, 'prepared> for T
|
||||
where T: PythonObjectWithCheckedDowncast<'python>,
|
||||
'python: 'source
|
||||
{
|
||||
|
||||
type Prepared = &'source PyObject<'python>;
|
||||
|
||||
|
@ -108,7 +110,7 @@ impl <'python, 'source, 'prepared, T> ExtractPyObject<'python, 'source, 'prepare
|
|||
}
|
||||
|
||||
#[inline]
|
||||
fn extract(&&ref obj: &'prepared Self::Prepared) -> PyResult<'python, T> {
|
||||
fn extract(&obj: &'prepared &'source PyObject<'python>) -> PyResult<'python, T> {
|
||||
Ok(try!(obj.clone().cast_into()))
|
||||
}
|
||||
}
|
||||
|
|
|
@ -137,7 +137,10 @@ impl <'p, T> ToPyObject<'p> for [T] where T: ToPyObject<'p> {
|
|||
}
|
||||
|
||||
impl <'python, 'source, 'prepared, T> ExtractPyObject<'python, 'source, 'prepared>
|
||||
for Vec<T> where T: for<'s, 'p> ExtractPyObject<'python, 's, 'p> {
|
||||
for Vec<T>
|
||||
where T: for<'s, 'p> ExtractPyObject<'python, 's, 'p>,
|
||||
'python : 'source
|
||||
{
|
||||
|
||||
type Prepared = &'source PyObject<'python>;
|
||||
|
||||
|
@ -147,7 +150,7 @@ impl <'python, 'source, 'prepared, T> ExtractPyObject<'python, 'source, 'prepare
|
|||
}
|
||||
|
||||
#[inline]
|
||||
fn extract(&&ref obj: &'prepared Self::Prepared) -> PyResult<'python, Vec<T>> {
|
||||
fn extract(&obj: &'prepared &'source PyObject<'python>) -> PyResult<'python, Vec<T>> {
|
||||
let list = try!(obj.cast_as::<PyList>());
|
||||
let mut v = Vec::with_capacity(list.len());
|
||||
for i in 0 .. list.len() {
|
||||
|
|
|
@ -156,6 +156,7 @@ macro_rules! extract(
|
|||
impl <'python, 'source, 'prepared>
|
||||
::conversion::ExtractPyObject<'python, 'source, 'prepared>
|
||||
for $t
|
||||
where 'python: 'source
|
||||
{
|
||||
|
||||
type Prepared = &'source PyObject<'python>;
|
||||
|
|
|
@ -197,6 +197,7 @@ macro_rules! int_convert_u64_or_i64 (
|
|||
|
||||
impl <'python, 'source, 'prepared>
|
||||
ExtractPyObject<'python, 'source, 'prepared> for $rust_type
|
||||
where 'python: 'source
|
||||
{
|
||||
type Prepared = &'source PyObject<'python>;
|
||||
|
||||
|
|
Loading…
Reference in New Issue