pyo3::conversion

Trait IntoPyObject

Source
pub trait IntoPyObject<'py>: Sized {
    type Target;
    type Output: BoundObject<'py, Self::Target>;
    type Error: Into<PyErr>;

    // Required method
    fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>;

    // Provided method
    fn type_output() -> TypeInfo { ... }
}
Expand description

Defines a conversion from a Rust type to a Python object, which may fail.

This trait has #[derive(IntoPyObject)] to automatically implement it for simple types and #[derive(IntoPyObjectRef)] to implement the same for references.

It functions similarly to std’s TryInto trait, but requires a GIL token as an argument.

The into_pyobject method is designed for maximum flexibility and efficiency; it

  • allows for a concrete Python type to be returned (the Target associated type)
  • allows for the smart pointer containing the Python object to be either Bound<'py, Self::Target> or Borrowed<'a, 'py, Self::Target> to avoid unnecessary reference counting overhead
  • allows for a custom error type to be returned in the event of a conversion error to avoid unnecessarily creating a Python exception

§See also

  • The IntoPyObjectExt trait, which provides convenience methods for common usages of IntoPyObject which erase type information and convert errors to PyErr.

Required Associated Types§

Source

type Target

The Python output type

Source

type Output: BoundObject<'py, Self::Target>

The smart pointer type to use.

This will usually be [Bound<'py, Target>], but in special cases [Borrowed<'a, 'py, Target>] can be used to minimize reference counting overhead.

Source

type Error: Into<PyErr>

The type returned in the event of a conversion error.

Required Methods§

Source

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Performs the conversion.

Provided Methods§

Source

fn type_output() -> TypeInfo

Extracts the type hint information for this type when it appears as a return value.

For example, Vec<u32> would return List[int]. The default implementation returns Any, which is correct for any type.

For most types, the return value for this method will be identical to that of FromPyObject::type_input. It may be different for some types, such as Dict, to allow duck-typing: functions return Dict but take Mapping as argument.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'a, 'py, A> IntoPyObject<'py> for &'a SmallVec<A>
where A: Array, &'a A::Item: IntoPyObject<'py>, A::Item: 'a,

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <&'a SmallVec<A> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

fn type_output() -> TypeInfo

Source§

impl<'a, 'py, K> IntoPyObject<'py> for &'a BTreeSet<K>
where &'a K: IntoPyObject<'py> + Ord, K: 'a,

Source§

impl<'a, 'py, K, H> IntoPyObject<'py> for &'a HashSet<K, H>
where &'a K: IntoPyObject<'py> + Eq + Hash, K: 'a, H: BuildHasher,

Source§

type Target = PySet

Source§

type Output = Bound<'py, <&'a HashSet<K, H> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

fn type_output() -> TypeInfo

Source§

impl<'a, 'py, K, H> IntoPyObject<'py> for &'a HashSet<K, H>
where &'a K: IntoPyObject<'py> + Eq + Hash, H: BuildHasher,

Source§

type Target = PySet

Source§

type Output = Bound<'py, <&'a HashSet<K, H> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'a, 'py, K, V> IntoPyObject<'py> for &'a BTreeMap<K, V>
where &'a K: IntoPyObject<'py> + Eq, &'a V: IntoPyObject<'py>, K: 'a, V: 'a,

Source§

type Target = PyDict

Source§

type Output = Bound<'py, <&'a BTreeMap<K, V> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

fn type_output() -> TypeInfo

Source§

impl<'a, 'py, K, V, H> IntoPyObject<'py> for &'a HashMap<K, V, H>
where &'a K: IntoPyObject<'py> + Eq + Hash, &'a V: IntoPyObject<'py>, K: 'a, V: 'a, H: BuildHasher,

Source§

type Target = PyDict

Source§

type Output = Bound<'py, <&'a HashMap<K, V, H> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

fn type_output() -> TypeInfo

Source§

impl<'a, 'py, K, V, H> IntoPyObject<'py> for &'a HashMap<K, V, H>
where &'a K: IntoPyObject<'py> + Eq + Hash, &'a V: IntoPyObject<'py>, H: BuildHasher,

Source§

type Target = PyDict

Source§

type Output = Bound<'py, <&'a HashMap<K, V, H> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'a, 'py, K, V, H> IntoPyObject<'py> for &'a IndexMap<K, V, H>
where &'a K: IntoPyObject<'py> + Eq + Hash, &'a V: IntoPyObject<'py>, H: BuildHasher,

Source§

type Target = PyDict

Source§

type Output = Bound<'py, <&'a IndexMap<K, V, H> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'a, 'py, L, R> IntoPyObject<'py> for &'a Either<L, R>
where &'a L: IntoPyObject<'py>, &'a R: IntoPyObject<'py>,

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <&'a Either<L, R> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'a, 'py, T0> IntoPyObject<'py> for &'a (T0,)
where &'a T0: IntoPyObject<'py>, T0: 'a,

Source§

impl<'a, 'py, T0, T1> IntoPyObject<'py> for &'a (T0, T1)
where &'a T0: IntoPyObject<'py>, &'a T1: IntoPyObject<'py>, T0: 'a, T1: 'a,

Source§

impl<'a, 'py, T0, T1, T2> IntoPyObject<'py> for &'a (T0, T1, T2)
where &'a T0: IntoPyObject<'py>, &'a T1: IntoPyObject<'py>, &'a T2: IntoPyObject<'py>, T0: 'a, T1: 'a, T2: 'a,

Source§

impl<'a, 'py, T0, T1, T2, T3> IntoPyObject<'py> for &'a (T0, T1, T2, T3)
where &'a T0: IntoPyObject<'py>, &'a T1: IntoPyObject<'py>, &'a T2: IntoPyObject<'py>, &'a T3: IntoPyObject<'py>, T0: 'a, T1: 'a, T2: 'a, T3: 'a,

Source§

impl<'a, 'py, T0, T1, T2, T3, T4> IntoPyObject<'py> for &'a (T0, T1, T2, T3, T4)
where &'a T0: IntoPyObject<'py>, &'a T1: IntoPyObject<'py>, &'a T2: IntoPyObject<'py>, &'a T3: IntoPyObject<'py>, &'a T4: IntoPyObject<'py>, T0: 'a, T1: 'a, T2: 'a, T3: 'a, T4: 'a,

Source§

impl<'a, 'py, T0, T1, T2, T3, T4, T5> IntoPyObject<'py> for &'a (T0, T1, T2, T3, T4, T5)
where &'a T0: IntoPyObject<'py>, &'a T1: IntoPyObject<'py>, &'a T2: IntoPyObject<'py>, &'a T3: IntoPyObject<'py>, &'a T4: IntoPyObject<'py>, &'a T5: IntoPyObject<'py>, T0: 'a, T1: 'a, T2: 'a, T3: 'a, T4: 'a, T5: 'a,

Source§

impl<'a, 'py, T0, T1, T2, T3, T4, T5, T6> IntoPyObject<'py> for &'a (T0, T1, T2, T3, T4, T5, T6)
where &'a T0: IntoPyObject<'py>, &'a T1: IntoPyObject<'py>, &'a T2: IntoPyObject<'py>, &'a T3: IntoPyObject<'py>, &'a T4: IntoPyObject<'py>, &'a T5: IntoPyObject<'py>, &'a T6: IntoPyObject<'py>, T0: 'a, T1: 'a, T2: 'a, T3: 'a, T4: 'a, T5: 'a, T6: 'a,

Source§

impl<'a, 'py, T0, T1, T2, T3, T4, T5, T6, T7> IntoPyObject<'py> for &'a (T0, T1, T2, T3, T4, T5, T6, T7)
where &'a T0: IntoPyObject<'py>, &'a T1: IntoPyObject<'py>, &'a T2: IntoPyObject<'py>, &'a T3: IntoPyObject<'py>, &'a T4: IntoPyObject<'py>, &'a T5: IntoPyObject<'py>, &'a T6: IntoPyObject<'py>, &'a T7: IntoPyObject<'py>, T0: 'a, T1: 'a, T2: 'a, T3: 'a, T4: 'a, T5: 'a, T6: 'a, T7: 'a,

Source§

impl<'a, 'py, T0, T1, T2, T3, T4, T5, T6, T7, T8> IntoPyObject<'py> for &'a (T0, T1, T2, T3, T4, T5, T6, T7, T8)
where &'a T0: IntoPyObject<'py>, &'a T1: IntoPyObject<'py>, &'a T2: IntoPyObject<'py>, &'a T3: IntoPyObject<'py>, &'a T4: IntoPyObject<'py>, &'a T5: IntoPyObject<'py>, &'a T6: IntoPyObject<'py>, &'a T7: IntoPyObject<'py>, &'a T8: IntoPyObject<'py>, T0: 'a, T1: 'a, T2: 'a, T3: 'a, T4: 'a, T5: 'a, T6: 'a, T7: 'a, T8: 'a,

Source§

impl<'a, 'py, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> IntoPyObject<'py> for &'a (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
where &'a T0: IntoPyObject<'py>, &'a T1: IntoPyObject<'py>, &'a T2: IntoPyObject<'py>, &'a T3: IntoPyObject<'py>, &'a T4: IntoPyObject<'py>, &'a T5: IntoPyObject<'py>, &'a T6: IntoPyObject<'py>, &'a T7: IntoPyObject<'py>, &'a T8: IntoPyObject<'py>, &'a T9: IntoPyObject<'py>, T0: 'a, T1: 'a, T2: 'a, T3: 'a, T4: 'a, T5: 'a, T6: 'a, T7: 'a, T8: 'a, T9: 'a,

Source§

impl<'a, 'py, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> IntoPyObject<'py> for &'a (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
where &'a T0: IntoPyObject<'py>, &'a T1: IntoPyObject<'py>, &'a T2: IntoPyObject<'py>, &'a T3: IntoPyObject<'py>, &'a T4: IntoPyObject<'py>, &'a T5: IntoPyObject<'py>, &'a T6: IntoPyObject<'py>, &'a T7: IntoPyObject<'py>, &'a T8: IntoPyObject<'py>, &'a T9: IntoPyObject<'py>, &'a T10: IntoPyObject<'py>, T0: 'a, T1: 'a, T2: 'a, T3: 'a, T4: 'a, T5: 'a, T6: 'a, T7: 'a, T8: 'a, T9: 'a, T10: 'a,

Source§

impl<'a, 'py, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> IntoPyObject<'py> for &'a (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where &'a T0: IntoPyObject<'py>, &'a T1: IntoPyObject<'py>, &'a T2: IntoPyObject<'py>, &'a T3: IntoPyObject<'py>, &'a T4: IntoPyObject<'py>, &'a T5: IntoPyObject<'py>, &'a T6: IntoPyObject<'py>, &'a T7: IntoPyObject<'py>, &'a T8: IntoPyObject<'py>, &'a T9: IntoPyObject<'py>, &'a T10: IntoPyObject<'py>, &'a T11: IntoPyObject<'py>, T0: 'a, T1: 'a, T2: 'a, T3: 'a, T4: 'a, T5: 'a, T6: 'a, T7: 'a, T8: 'a, T9: 'a, T10: 'a, T11: 'a,

Source§

impl<'a, 'py, T> IntoPyObject<'py> for &'a Option<T>
where &'a T: IntoPyObject<'py>,

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <&'a Option<T> as IntoPyObject<'py>>::Target>

Source§

type Error = <&'a T as IntoPyObject<'py>>::Error

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'a, 'py, T> IntoPyObject<'py> for &'a [T]
where &'a T: IntoPyObject<'py>, T: 'a,

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Turns &[u8] into PyBytes, all other Ts will be turned into a PyList

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <&'a [T] as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn type_output() -> TypeInfo

Source§

impl<'a, 'py, T> IntoPyObject<'py> for &'a Vec<T>
where &'a T: IntoPyObject<'py>, T: 'a,

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <&'a Vec<T> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

fn type_output() -> TypeInfo

Source§

impl<'a, 'py, T> IntoPyObject<'py> for &&'a T
where &'a T: IntoPyObject<'py>,

Source§

type Target = <&'a T as IntoPyObject<'py>>::Target

Source§

type Output = <&'a T as IntoPyObject<'py>>::Output

Source§

type Error = <&'a T as IntoPyObject<'py>>::Error

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'a, 'py, T, const N: usize> IntoPyObject<'py> for &'a [T; N]
where &'a T: IntoPyObject<'py>,

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <&'a [T; N] as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for &&str

Source§

impl<'py> IntoPyObject<'py> for &&OsStr

Source§

impl<'py> IntoPyObject<'py> for &&Path

Source§

impl<'py> IntoPyObject<'py> for &Cow<'_, str>

Source§

impl<'py> IntoPyObject<'py> for &Cow<'_, OsStr>

Source§

type Target = PyString

Source§

type Output = Bound<'py, <&Cow<'_, OsStr> as IntoPyObject<'py>>::Target>

Source§

type Error = Infallible

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for &Cow<'_, Path>

Source§

type Target = PyString

Source§

type Output = Bound<'py, <&Cow<'_, Path> as IntoPyObject<'py>>::Target>

Source§

type Error = Infallible

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for &IpAddr

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <&IpAddr as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for &bool

Source§

impl<'py> IntoPyObject<'py> for &char

Source§

impl<'py> IntoPyObject<'py> for &f32

Source§

impl<'py> IntoPyObject<'py> for &f64

Source§

impl<'py> IntoPyObject<'py> for &i8

Source§

impl<'py> IntoPyObject<'py> for &i16

Source§

impl<'py> IntoPyObject<'py> for &i32

Source§

impl<'py> IntoPyObject<'py> for &i64

Source§

impl<'py> IntoPyObject<'py> for &i128

Source§

impl<'py> IntoPyObject<'py> for &isize

Source§

impl<'py> IntoPyObject<'py> for &str

Source§

impl<'py> IntoPyObject<'py> for &u8

Source§

impl<'py> IntoPyObject<'py> for &u16

Source§

impl<'py> IntoPyObject<'py> for &u32

Source§

impl<'py> IntoPyObject<'py> for &u64

Source§

impl<'py> IntoPyObject<'py> for &u128

Source§

impl<'py> IntoPyObject<'py> for &usize

Source§

impl<'py> IntoPyObject<'py> for &String

Source§

impl<'py> IntoPyObject<'py> for &Ipv4Addr

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <&Ipv4Addr as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for &Ipv6Addr

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <&Ipv6Addr as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for &Duration

Source§

impl<'py> IntoPyObject<'py> for &OsStr

Source§

impl<'py> IntoPyObject<'py> for &OsString

Source§

impl<'py> IntoPyObject<'py> for &Path

Source§

impl<'py> IntoPyObject<'py> for &PathBuf

Source§

impl<'py> IntoPyObject<'py> for &SystemTime

Source§

impl<'py> IntoPyObject<'py> for &NaiveDate

Source§

impl<'py> IntoPyObject<'py> for &NaiveDateTime

Source§

impl<'py> IntoPyObject<'py> for &NaiveTime

Source§

impl<'py> IntoPyObject<'py> for &FixedOffset

Source§

impl<'py> IntoPyObject<'py> for &Utc

Source§

type Target = PyTzInfo

Source§

type Output = Bound<'py, <&Utc as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for &BigInt

Source§

type Target = PyInt

Source§

type Output = Bound<'py, <&BigInt as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for &BigUint

Source§

type Target = PyInt

Source§

type Output = Bound<'py, <&BigUint as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for &Complex<f32>

Source§

impl<'py> IntoPyObject<'py> for &Complex<f64>

Source§

impl<'py> IntoPyObject<'py> for &Ratio<i8>

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <&Ratio<i8> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for &Ratio<i16>

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <&Ratio<i16> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for &Ratio<i32>

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <&Ratio<i32> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for &Ratio<i64>

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <&Ratio<i64> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for &Ratio<isize>

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <&Ratio<isize> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for &Ratio<BigInt>

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <&Ratio<BigInt> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for &NonZeroI8

Source§

impl<'py> IntoPyObject<'py> for &NonZeroI16

Source§

impl<'py> IntoPyObject<'py> for &NonZeroI32

Source§

impl<'py> IntoPyObject<'py> for &NonZeroI64

Source§

impl<'py> IntoPyObject<'py> for &NonZeroI128

Source§

impl<'py> IntoPyObject<'py> for &NonZeroIsize

Source§

impl<'py> IntoPyObject<'py> for &NonZeroU8

Source§

impl<'py> IntoPyObject<'py> for &NonZeroU16

Source§

impl<'py> IntoPyObject<'py> for &NonZeroU32

Source§

impl<'py> IntoPyObject<'py> for &NonZeroU64

Source§

impl<'py> IntoPyObject<'py> for &NonZeroU128

Source§

impl<'py> IntoPyObject<'py> for &NonZeroUsize

Source§

impl<'py> IntoPyObject<'py> for &Duration

Source§

impl<'py> IntoPyObject<'py> for &Decimal

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <&Decimal as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for Cow<'_, str>

Source§

impl<'py> IntoPyObject<'py> for Cow<'_, OsStr>

Source§

type Target = PyString

Source§

type Output = Bound<'py, <Cow<'_, OsStr> as IntoPyObject<'py>>::Target>

Source§

type Error = Infallible

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for Cow<'_, Path>

Source§

type Target = PyString

Source§

type Output = Bound<'py, <Cow<'_, Path> as IntoPyObject<'py>>::Target>

Source§

type Error = Infallible

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for IpAddr

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <IpAddr as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for bool

Source§

impl<'py> IntoPyObject<'py> for char

Source§

impl<'py> IntoPyObject<'py> for f32

Source§

impl<'py> IntoPyObject<'py> for f64

Source§

impl<'py> IntoPyObject<'py> for i8

Source§

impl<'py> IntoPyObject<'py> for i16

Source§

impl<'py> IntoPyObject<'py> for i32

Source§

impl<'py> IntoPyObject<'py> for i64

Source§

impl<'py> IntoPyObject<'py> for i128

Source§

impl<'py> IntoPyObject<'py> for isize

Source§

impl<'py> IntoPyObject<'py> for u8

Source§

impl<'py> IntoPyObject<'py> for u16

Source§

impl<'py> IntoPyObject<'py> for u32

Source§

impl<'py> IntoPyObject<'py> for u64

Source§

impl<'py> IntoPyObject<'py> for u128

Source§

impl<'py> IntoPyObject<'py> for ()

Source§

impl<'py> IntoPyObject<'py> for usize

Source§

impl<'py> IntoPyObject<'py> for String

Source§

impl<'py> IntoPyObject<'py> for Ipv4Addr

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <Ipv4Addr as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for Ipv6Addr

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <Ipv6Addr as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for Duration

Source§

impl<'py> IntoPyObject<'py> for OsString

Source§

impl<'py> IntoPyObject<'py> for PathBuf

Source§

impl<'py> IntoPyObject<'py> for SystemTime

Source§

impl<'py> IntoPyObject<'py> for NaiveDate

Source§

impl<'py> IntoPyObject<'py> for NaiveDateTime

Source§

impl<'py> IntoPyObject<'py> for NaiveTime

Source§

impl<'py> IntoPyObject<'py> for FixedOffset

Source§

impl<'py> IntoPyObject<'py> for Utc

Source§

type Target = PyTzInfo

Source§

type Output = Bound<'py, <Utc as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for BigInt

Source§

type Target = PyInt

Source§

type Output = Bound<'py, <BigInt as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for BigUint

Source§

type Target = PyInt

Source§

type Output = Bound<'py, <BigUint as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for Complex<f32>

Source§

impl<'py> IntoPyObject<'py> for Complex<f64>

Source§

impl<'py> IntoPyObject<'py> for Ratio<i8>

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <Ratio<i8> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for Ratio<i16>

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <Ratio<i16> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for Ratio<i32>

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <Ratio<i32> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for Ratio<i64>

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <Ratio<i64> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for Ratio<isize>

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <Ratio<isize> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for Ratio<BigInt>

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <Ratio<BigInt> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py> IntoPyObject<'py> for NonZeroI8

Source§

impl<'py> IntoPyObject<'py> for NonZeroI16

Source§

impl<'py> IntoPyObject<'py> for NonZeroI32

Source§

impl<'py> IntoPyObject<'py> for NonZeroI64

Source§

impl<'py> IntoPyObject<'py> for NonZeroI128

Source§

impl<'py> IntoPyObject<'py> for NonZeroIsize

Source§

impl<'py> IntoPyObject<'py> for NonZeroU8

Source§

impl<'py> IntoPyObject<'py> for NonZeroU16

Source§

impl<'py> IntoPyObject<'py> for NonZeroU32

Source§

impl<'py> IntoPyObject<'py> for NonZeroU64

Source§

impl<'py> IntoPyObject<'py> for NonZeroU128

Source§

impl<'py> IntoPyObject<'py> for NonZeroUsize

Source§

impl<'py> IntoPyObject<'py> for Duration

Source§

impl<'py> IntoPyObject<'py> for Decimal

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <Decimal as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py, A> IntoPyObject<'py> for SmallVec<A>
where A: Array, A::Item: IntoPyObject<'py>,

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Turns [SmallVec<u8>] into PyBytes, all other Ts will be turned into a PyList

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <SmallVec<A> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn type_output() -> TypeInfo

Source§

impl<'py, K> IntoPyObject<'py> for BTreeSet<K>
where K: IntoPyObject<'py> + Ord,

Source§

impl<'py, K, H> IntoPyObject<'py> for HashSet<K, H>
where K: IntoPyObject<'py> + Eq + Hash, H: BuildHasher,

Source§

type Target = PySet

Source§

type Output = Bound<'py, <HashSet<K, H> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py, K, S> IntoPyObject<'py> for HashSet<K, S>
where K: IntoPyObject<'py> + Eq + Hash, S: BuildHasher + Default,

Source§

impl<'py, K, V> IntoPyObject<'py> for BTreeMap<K, V>
where K: IntoPyObject<'py> + Eq, V: IntoPyObject<'py>,

Source§

impl<'py, K, V, H> IntoPyObject<'py> for HashMap<K, V, H>
where K: IntoPyObject<'py> + Eq + Hash, V: IntoPyObject<'py>, H: BuildHasher,

Source§

type Target = PyDict

Source§

type Output = Bound<'py, <HashMap<K, V, H> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

fn type_output() -> TypeInfo

Source§

impl<'py, K, V, H> IntoPyObject<'py> for HashMap<K, V, H>
where K: IntoPyObject<'py> + Eq + Hash, V: IntoPyObject<'py>, H: BuildHasher,

Source§

type Target = PyDict

Source§

type Output = Bound<'py, <HashMap<K, V, H> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py, K, V, H> IntoPyObject<'py> for IndexMap<K, V, H>
where K: IntoPyObject<'py> + Eq + Hash, V: IntoPyObject<'py>, H: BuildHasher,

Source§

type Target = PyDict

Source§

type Output = Bound<'py, <IndexMap<K, V, H> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py, L, R> IntoPyObject<'py> for Either<L, R>
where L: IntoPyObject<'py>, R: IntoPyObject<'py>,

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <Either<L, R> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py, T0> IntoPyObject<'py> for (T0,)
where T0: IntoPyObject<'py>,

Source§

impl<'py, T0, T1> IntoPyObject<'py> for (T0, T1)
where T0: IntoPyObject<'py>, T1: IntoPyObject<'py>,

Source§

impl<'py, T0, T1, T2> IntoPyObject<'py> for (T0, T1, T2)
where T0: IntoPyObject<'py>, T1: IntoPyObject<'py>, T2: IntoPyObject<'py>,

Source§

impl<'py, T0, T1, T2, T3> IntoPyObject<'py> for (T0, T1, T2, T3)
where T0: IntoPyObject<'py>, T1: IntoPyObject<'py>, T2: IntoPyObject<'py>, T3: IntoPyObject<'py>,

Source§

impl<'py, T0, T1, T2, T3, T4> IntoPyObject<'py> for (T0, T1, T2, T3, T4)
where T0: IntoPyObject<'py>, T1: IntoPyObject<'py>, T2: IntoPyObject<'py>, T3: IntoPyObject<'py>, T4: IntoPyObject<'py>,

Source§

impl<'py, T0, T1, T2, T3, T4, T5> IntoPyObject<'py> for (T0, T1, T2, T3, T4, T5)
where T0: IntoPyObject<'py>, T1: IntoPyObject<'py>, T2: IntoPyObject<'py>, T3: IntoPyObject<'py>, T4: IntoPyObject<'py>, T5: IntoPyObject<'py>,

Source§

impl<'py, T0, T1, T2, T3, T4, T5, T6> IntoPyObject<'py> for (T0, T1, T2, T3, T4, T5, T6)
where T0: IntoPyObject<'py>, T1: IntoPyObject<'py>, T2: IntoPyObject<'py>, T3: IntoPyObject<'py>, T4: IntoPyObject<'py>, T5: IntoPyObject<'py>, T6: IntoPyObject<'py>,

Source§

impl<'py, T0, T1, T2, T3, T4, T5, T6, T7> IntoPyObject<'py> for (T0, T1, T2, T3, T4, T5, T6, T7)
where T0: IntoPyObject<'py>, T1: IntoPyObject<'py>, T2: IntoPyObject<'py>, T3: IntoPyObject<'py>, T4: IntoPyObject<'py>, T5: IntoPyObject<'py>, T6: IntoPyObject<'py>, T7: IntoPyObject<'py>,

Source§

impl<'py, T0, T1, T2, T3, T4, T5, T6, T7, T8> IntoPyObject<'py> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
where T0: IntoPyObject<'py>, T1: IntoPyObject<'py>, T2: IntoPyObject<'py>, T3: IntoPyObject<'py>, T4: IntoPyObject<'py>, T5: IntoPyObject<'py>, T6: IntoPyObject<'py>, T7: IntoPyObject<'py>, T8: IntoPyObject<'py>,

Source§

impl<'py, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> IntoPyObject<'py> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
where T0: IntoPyObject<'py>, T1: IntoPyObject<'py>, T2: IntoPyObject<'py>, T3: IntoPyObject<'py>, T4: IntoPyObject<'py>, T5: IntoPyObject<'py>, T6: IntoPyObject<'py>, T7: IntoPyObject<'py>, T8: IntoPyObject<'py>, T9: IntoPyObject<'py>,

Source§

impl<'py, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> IntoPyObject<'py> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
where T0: IntoPyObject<'py>, T1: IntoPyObject<'py>, T2: IntoPyObject<'py>, T3: IntoPyObject<'py>, T4: IntoPyObject<'py>, T5: IntoPyObject<'py>, T6: IntoPyObject<'py>, T7: IntoPyObject<'py>, T8: IntoPyObject<'py>, T9: IntoPyObject<'py>, T10: IntoPyObject<'py>,

Source§

impl<'py, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> IntoPyObject<'py> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where T0: IntoPyObject<'py>, T1: IntoPyObject<'py>, T2: IntoPyObject<'py>, T3: IntoPyObject<'py>, T4: IntoPyObject<'py>, T5: IntoPyObject<'py>, T6: IntoPyObject<'py>, T7: IntoPyObject<'py>, T8: IntoPyObject<'py>, T9: IntoPyObject<'py>, T10: IntoPyObject<'py>, T11: IntoPyObject<'py>,

Source§

impl<'py, T> IntoPyObject<'py> for Cow<'_, [T]>
where T: Clone, for<'a> &'a T: IntoPyObject<'py>,

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Turns Cow<[u8]> into PyBytes, all other Ts will be turned into a PyList

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <Cow<'_, [T]> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

impl<'py, T> IntoPyObject<'py> for Option<T>
where T: IntoPyObject<'py>,

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <Option<T> as IntoPyObject<'py>>::Target>

Source§

type Error = <T as IntoPyObject<'py>>::Error

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py, T> IntoPyObject<'py> for Vec<T>
where T: IntoPyObject<'py>,

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Turns Vec<u8> into PyBytes, all other Ts will be turned into a PyList

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <Vec<T> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn type_output() -> TypeInfo

Source§

impl<'py, T, const N: usize> IntoPyObject<'py> for [T; N]
where T: IntoPyObject<'py>,

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Turns [u8; N] into PyBytes, all other Ts will be turned into a PyList

Source§

type Target = PyAny

Source§

type Output = Bound<'py, <[T; N] as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

impl<'py, T: Copy + IntoPyObject<'py>> IntoPyObject<'py> for &Cell<T>

Source§

type Target = <T as IntoPyObject<'py>>::Target

Source§

type Output = <T as IntoPyObject<'py>>::Output

Source§

type Error = <T as IntoPyObject<'py>>::Error

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py, T: Copy + IntoPyObject<'py>> IntoPyObject<'py> for Cell<T>

Source§

type Target = <T as IntoPyObject<'py>>::Target

Source§

type Output = <T as IntoPyObject<'py>>::Output

Source§

type Error = <T as IntoPyObject<'py>>::Error

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py, Tz> IntoPyObject<'py> for &DateTime<Tz>
where Tz: IntoPyObject<'py> + TimeZone,

Source§

type Target = PyDateTime

Source§

type Output = Bound<'py, <&DateTime<Tz> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Source§

impl<'py, Tz> IntoPyObject<'py> for DateTime<Tz>
where Tz: IntoPyObject<'py> + TimeZone,

Source§

type Target = PyDateTime

Source§

type Output = Bound<'py, <DateTime<Tz> as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject(self, py: Python<'py>) -> Result<Self::Output, Self::Error>

Implementors§

Source§

impl<'a, 'py, T> IntoPyObject<'py> for &'a Bound<'py, T>

Source§

type Target = T

Source§

type Output = Borrowed<'a, 'py, <&'a Bound<'py, T> as IntoPyObject<'py>>::Target>

Source§

type Error = Infallible

Source§

impl<'a, 'py, T> IntoPyObject<'py> for &'a Py<T>

Source§

type Target = T

Source§

type Output = Borrowed<'a, 'py, <&'a Py<T> as IntoPyObject<'py>>::Target>

Source§

type Error = Infallible

Source§

impl<'a, 'py, T> IntoPyObject<'py> for &Borrowed<'a, 'py, T>

Source§

type Target = T

Source§

type Output = Borrowed<'a, 'py, <&Borrowed<'a, 'py, T> as IntoPyObject<'py>>::Target>

Source§

type Error = Infallible

Source§

impl<'a, 'py, T> IntoPyObject<'py> for Borrowed<'a, 'py, T>

Source§

type Target = T

Source§

type Output = Borrowed<'a, 'py, <Borrowed<'a, 'py, T> as IntoPyObject<'py>>::Target>

Source§

type Error = Infallible

Source§

impl<'a, 'py, T: PyClass> IntoPyObject<'py> for &'a PyRef<'py, T>

Source§

impl<'a, 'py, T: PyClass<Frozen = False>> IntoPyObject<'py> for &'a PyRefMut<'py, T>

Source§

impl<'py> IntoPyObject<'py> for &PyErr

Source§

impl<'py> IntoPyObject<'py> for &PyBackedBytes

Source§

impl<'py> IntoPyObject<'py> for &PyBackedStr

Source§

impl<'py> IntoPyObject<'py> for &PySliceIndices

Source§

impl<'py> IntoPyObject<'py> for Coroutine

Source§

impl<'py> IntoPyObject<'py> for PyErr

Source§

impl<'py> IntoPyObject<'py> for PyBackedBytes

Source§

impl<'py> IntoPyObject<'py> for PyBackedStr

Source§

impl<'py> IntoPyObject<'py> for PySliceIndices

Source§

impl<'py, T> IntoPyObject<'py> for Bound<'py, T>

Source§

type Target = T

Source§

type Output = Bound<'py, <Bound<'py, T> as IntoPyObject<'py>>::Target>

Source§

type Error = Infallible

Source§

impl<'py, T> IntoPyObject<'py> for Py<T>

Source§

impl<'py, T: PyClass> IntoPyObject<'py> for PyRef<'py, T>

Source§

impl<'py, T: PyClass<Frozen = False>> IntoPyObject<'py> for PyRefMut<'py, T>