Trait pyo3::conversion::FromPyObject [−][src]
Expand description
FromPyObject
is implemented by various types that can be extracted from
a Python object reference.
Normal usage is through the helper methods Py::extract
or PyAny::extract
:
let obj: Py<PyAny> = ...;
let value: &TargetType = obj.extract(py)?;
let any: &PyAny = ...;
let value: &TargetType = any.extract()?;
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 which case applies depends on the runtime type of the Python object,
both the obj
and prepared
variables must outlive the resulting string slice.
The trait’s conversion method takes a &PyAny
argument but is called
FromPyObject
for historical reasons.
Required methods
Implementations on Foreign Types
Converts a Python bool
to a Rust bool
.
Fails with TypeError
if the input is not a Python bool
.
impl<'source, K, V, S> FromPyObject<'source> for HashMap<K, V, S> where
K: FromPyObject<'source> + Eq + Hash,
V: FromPyObject<'source>,
S: BuildHasher + Default,
impl<'source, K, V, S> FromPyObject<'source> for HashMap<K, V, S> where
K: FromPyObject<'source> + Eq + Hash,
V: FromPyObject<'source>,
S: BuildHasher + Default,
impl<'source, K, V> FromPyObject<'source> for BTreeMap<K, V> where
K: FromPyObject<'source> + Ord,
V: FromPyObject<'source>,
impl<'source, K, V> FromPyObject<'source> for BTreeMap<K, V> where
K: FromPyObject<'source> + Ord,
V: FromPyObject<'source>,
impl<'source, K, S> FromPyObject<'source> for HashSet<K, S> where
K: FromPyObject<'source> + Eq + Hash,
S: BuildHasher + Default,
impl<'source, K, S> FromPyObject<'source> for HashSet<K, S> where
K: FromPyObject<'source> + Eq + Hash,
S: BuildHasher + Default,
Allows extracting strings from Python objects.
Accepts Python str
and unicode
objects.
Allows extracting strings from Python objects.
Accepts Python str
and unicode
objects.