Trait pyo3::FromPyObject[][src]

pub trait FromPyObject<'source>: Sized {
    fn extract(ob: &'source PyObjectRef) -> PyResult<Self>;
}

FromPyObject is implemented by various types that can be extracted from a Python object reference.

Normal usage is through the PyObject::extract helper method:

let value: &TargetType = obj.extract(py)?;

Note: depending on the implementation, the lifetime of the extracted result may depend on the lifetime of the obj or the prepared variable.

For example, when extracting &str from a python byte string, the resulting string slice will point to the existing string data (lifetime: 'source). On the other hand, when extracting &str from a python unicode string, the preparation step will convert the string to UTF-8, and the resulting string slice will have lifetime 'prepared. Since only which of these cases applies depends on the runtime type of the python object, both the obj and prepared variables must outlive the resulting string slice.

In cases where the result does not depend on the 'prepared lifetime, the inherent method PyObject::extract() can be used.

Required Methods

Extracts Self from the source PyObject.

Implementations on Foreign Types

impl<'a, T> FromPyObject<'a> for &'a T where
    T: PyTypeInfo
[src]

Extract reference to instance from PyObject

impl<'a, T> FromPyObject<'a> for &'a mut T where
    T: PyTypeInfo
[src]

Extract mutable reference to instance from PyObject

impl<'a, T> FromPyObject<'a> for Option<T> where
    T: FromPyObject<'a>, 
[src]

impl<'source> FromPyObject<'source> for bool
[src]

impl<'s, A: FromPyObject<'s>> FromPyObject<'s> for (A,)
[src]

impl<'s, A: FromPyObject<'s>, B: FromPyObject<'s>> FromPyObject<'s> for (A, B)
[src]

impl<'s, A: FromPyObject<'s>, B: FromPyObject<'s>, C: FromPyObject<'s>> FromPyObject<'s> for (A, B, C)
[src]

impl<'s, A: FromPyObject<'s>, B: FromPyObject<'s>, C: FromPyObject<'s>, D: FromPyObject<'s>> FromPyObject<'s> for (A, B, C, D)
[src]

impl<'s, A: FromPyObject<'s>, B: FromPyObject<'s>, C: FromPyObject<'s>, D: FromPyObject<'s>, E: FromPyObject<'s>> FromPyObject<'s> for (A, B, C, D, E)
[src]

impl<'s, A: FromPyObject<'s>, B: FromPyObject<'s>, C: FromPyObject<'s>, D: FromPyObject<'s>, E: FromPyObject<'s>, F: FromPyObject<'s>> FromPyObject<'s> for (A, B, C, D, E, F)
[src]

impl<'s, A: FromPyObject<'s>, B: FromPyObject<'s>, C: FromPyObject<'s>, D: FromPyObject<'s>, E: FromPyObject<'s>, F: FromPyObject<'s>, G: FromPyObject<'s>> FromPyObject<'s> for (A, B, C, D, E, F, G)
[src]

impl<'s, A: FromPyObject<'s>, B: FromPyObject<'s>, C: FromPyObject<'s>, D: FromPyObject<'s>, E: FromPyObject<'s>, F: FromPyObject<'s>, G: FromPyObject<'s>, H: FromPyObject<'s>> FromPyObject<'s> for (A, B, C, D, E, F, G, H)
[src]

impl<'s, A: FromPyObject<'s>, B: FromPyObject<'s>, C: FromPyObject<'s>, D: FromPyObject<'s>, E: FromPyObject<'s>, F: FromPyObject<'s>, G: FromPyObject<'s>, H: FromPyObject<'s>, I: FromPyObject<'s>> FromPyObject<'s> for (A, B, C, D, E, F, G, H, I)
[src]

impl<'source> FromPyObject<'source> for f64
[src]

impl<'source> FromPyObject<'source> for f32
[src]

impl<'a, T> FromPyObject<'a> for Vec<T> where
    T: FromPyObject<'a>, 
[src]

impl<'source, T> FromPyObject<'source> for Vec<T> where
    T: FromPyObject<'a> + Element + Copy
[src]

impl<'source> FromPyObject<'source> for Cow<'source, str>
[src]

Allows extracting strings from Python objects. Accepts Python str and unicode objects.

impl<'a> FromPyObject<'a> for &'a str
[src]

Allows extracting strings from Python objects. Accepts Python str and unicode objects.

impl<'source> FromPyObject<'source> for String
[src]

impl<'source> FromPyObject<'source> for i8
[src]

impl<'source> FromPyObject<'source> for u8
[src]

impl<'source> FromPyObject<'source> for i16
[src]

impl<'source> FromPyObject<'source> for u16
[src]

impl<'source> FromPyObject<'source> for i32
[src]

impl<'source> FromPyObject<'source> for u32
[src]

impl<'source> FromPyObject<'source> for i64
[src]

impl<'source> FromPyObject<'source> for isize
[src]

impl<'source> FromPyObject<'source> for usize
[src]

impl<'source> FromPyObject<'source> for u64
[src]

Implementors