[−][src]Trait pyo3::FromPyObject
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
fn extract(ob: &'source PyObjectRef) -> PyResult<Self>
Extracts Self
from the source PyObject
.
Implementations on Foreign Types
impl<'a, T> FromPyObject<'a> for &'a T where
T: PyTryFrom,
[src]
impl<'a, T> FromPyObject<'a> for &'a T where
T: PyTryFrom,
Extract reference to instance from PyObject
fn extract(ob: &'a PyObjectRef) -> PyResult<&'a T>
[src]
fn extract(ob: &'a PyObjectRef) -> PyResult<&'a T>
impl<'a, T> FromPyObject<'a> for &'a mut T where
T: PyTryFrom,
[src]
impl<'a, T> FromPyObject<'a> for &'a mut T where
T: PyTryFrom,
Extract mutable reference to instance from PyObject
fn extract(ob: &'a PyObjectRef) -> PyResult<&'a mut T>
[src]
fn extract(ob: &'a PyObjectRef) -> PyResult<&'a mut T>
impl<'a, T> FromPyObject<'a> for Option<T> where
T: FromPyObject<'a>,
[src]
impl<'a, T> FromPyObject<'a> for Option<T> where
T: FromPyObject<'a>,
fn extract(obj: &'a PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'a PyObjectRef) -> PyResult<Self>
impl<'source> FromPyObject<'source> for bool
[src]
impl<'source> FromPyObject<'source> for bool
Converts a Python bool
to a rust bool
.
Fails with TypeError
if the input is not a Python bool
.
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
impl<'source> FromPyObject<'source> for f64
[src]
impl<'source> FromPyObject<'source> for f64
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
impl<'source> FromPyObject<'source> for f32
[src]
impl<'source> FromPyObject<'source> for f32
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
impl<'a, T> FromPyObject<'a> for Vec<T> where
T: FromPyObject<'a>,
[src]
impl<'a, T> FromPyObject<'a> for Vec<T> where
T: FromPyObject<'a>,
fn extract(obj: &'a PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'a PyObjectRef) -> PyResult<Self>
impl<'source, T> FromPyObject<'source> for Vec<T> where
T: FromPyObject<'a> + Element + Copy,
[src]
impl<'source, T> FromPyObject<'source> for Vec<T> where
T: FromPyObject<'a> + Element + Copy,
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
impl<'source> FromPyObject<'source> for Cow<'source, str>
[src]
impl<'source> FromPyObject<'source> for Cow<'source, str>
Allows extracting strings from Python objects.
Accepts Python str
and unicode
objects.
fn extract(ob: &'source PyObjectRef) -> PyResult<Self>
[src]
fn extract(ob: &'source PyObjectRef) -> PyResult<Self>
impl<'a> FromPyObject<'a> for &'a str
[src]
impl<'a> FromPyObject<'a> for &'a str
Allows extracting strings from Python objects.
Accepts Python str
and unicode
objects.
fn extract(ob: &'a PyObjectRef) -> PyResult<Self>
[src]
fn extract(ob: &'a PyObjectRef) -> PyResult<Self>
impl<'source> FromPyObject<'source> for String
[src]
impl<'source> FromPyObject<'source> for String
Allows extracting strings from Python objects.
Accepts Python str
and unicode
objects.
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
impl<'s, A: FromPyObject<'s>> FromPyObject<'s> for (A,)
[src]
impl<'s, A: FromPyObject<'s>> FromPyObject<'s> for (A,)
fn extract(obj: &'s PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'s PyObjectRef) -> PyResult<Self>
impl<'s, A: FromPyObject<'s>, B: FromPyObject<'s>> FromPyObject<'s> for (A, B)
[src]
impl<'s, A: FromPyObject<'s>, B: FromPyObject<'s>> FromPyObject<'s> for (A, B)
fn extract(obj: &'s PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'s PyObjectRef) -> PyResult<Self>
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>> FromPyObject<'s> for (A, B, C)
fn extract(obj: &'s PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'s PyObjectRef) -> PyResult<Self>
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>> FromPyObject<'s> for (A, B, C, D)
fn extract(obj: &'s PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'s PyObjectRef) -> PyResult<Self>
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>> FromPyObject<'s> for (A, B, C, D, E)
fn extract(obj: &'s PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'s PyObjectRef) -> PyResult<Self>
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>> FromPyObject<'s> for (A, B, C, D, E, F)
fn extract(obj: &'s PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'s PyObjectRef) -> PyResult<Self>
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>> FromPyObject<'s> for (A, B, C, D, E, F, G)
fn extract(obj: &'s PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'s PyObjectRef) -> PyResult<Self>
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>> FromPyObject<'s> for (A, B, C, D, E, F, G, H)
fn extract(obj: &'s PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'s PyObjectRef) -> PyResult<Self>
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<'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)
fn extract(obj: &'s PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'s PyObjectRef) -> PyResult<Self>
impl<'source> FromPyObject<'source> for i8
[src]
impl<'source> FromPyObject<'source> for i8
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
impl<'source> FromPyObject<'source> for u8
[src]
impl<'source> FromPyObject<'source> for u8
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
impl<'source> FromPyObject<'source> for i16
[src]
impl<'source> FromPyObject<'source> for i16
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
impl<'source> FromPyObject<'source> for u16
[src]
impl<'source> FromPyObject<'source> for u16
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
impl<'source> FromPyObject<'source> for i32
[src]
impl<'source> FromPyObject<'source> for i32
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
impl<'source> FromPyObject<'source> for u32
[src]
impl<'source> FromPyObject<'source> for u32
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
impl<'source> FromPyObject<'source> for i64
[src]
impl<'source> FromPyObject<'source> for i64
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
impl<'source> FromPyObject<'source> for isize
[src]
impl<'source> FromPyObject<'source> for isize
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
impl<'source> FromPyObject<'source> for usize
[src]
impl<'source> FromPyObject<'source> for usize
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
[src]
fn extract(obj: &'source PyObjectRef) -> PyResult<Self>
impl<'source> FromPyObject<'source> for u64
[src]
impl<'source> FromPyObject<'source> for u64
fn extract(ob: &'source PyObjectRef) -> PyResult<u64>
[src]
fn extract(ob: &'source PyObjectRef) -> PyResult<u64>
impl<'source> FromPyObject<'source> for i128
[src]
impl<'source> FromPyObject<'source> for i128
fn extract(ob: &'source PyObjectRef) -> PyResult<i128>
[src]
fn extract(ob: &'source PyObjectRef) -> PyResult<i128>
impl<'source> FromPyObject<'source> for u128
[src]
impl<'source> FromPyObject<'source> for u128
fn extract(ob: &'source PyObjectRef) -> PyResult<u128>
[src]
fn extract(ob: &'source PyObjectRef) -> PyResult<u128>
Implementors
impl<'a> FromPyObject<'a> for PyObject
[src]
impl<'a> FromPyObject<'a> for PyObject
fn extract(ob: &'a PyObjectRef) -> PyResult<Self>
[src]
fn extract(ob: &'a PyObjectRef) -> PyResult<Self>
Extracts Self
from the source PyObject
.
impl<'a, T> FromPyObject<'a> for Py<T> where
T: ToPyPointer,
&'a T: 'a + FromPyObject<'a>,
[src]
impl<'a, T> FromPyObject<'a> for Py<T> where
T: ToPyPointer,
&'a T: 'a + FromPyObject<'a>,
fn extract(ob: &'a PyObjectRef) -> PyResult<Self>
[src]
fn extract(ob: &'a PyObjectRef) -> PyResult<Self>
Extracts Self
from the source PyObject
.