IntoPyObject

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>;
}
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.

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, K> IntoPyObject<'py> for &'a BTreeSet<K>
where &'a K: IntoPyObject<'py> + Ord, K: 'a,

Source§

type Target = PySet

Source§

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

Source§

type Error = PyErr

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<&'a BTreeSet<K> as IntoPyObject<'py>>::Output, <&'a BTreeSet<K> as IntoPyObject<'py>>::Error>

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<<&'a HashSet<K, H> as IntoPyObject<'py>>::Output, <&'a HashSet<K, H> as IntoPyObject<'py>>::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<<&'a BTreeMap<K, V> as IntoPyObject<'py>>::Output, <&'a BTreeMap<K, V> as IntoPyObject<'py>>::Error>

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<<&'a HashMap<K, V, H> as IntoPyObject<'py>>::Output, <&'a HashMap<K, V, H> as IntoPyObject<'py>>::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<<&'a IndexMap<K, V, H> as IntoPyObject<'py>>::Output, <&'a IndexMap<K, V, H> as IntoPyObject<'py>>::Error>

Source§

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

Source§

type Target = PyTuple

Source§

type Output = Bound<'py, <&'a (T0,) as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<&'a (T0,) as IntoPyObject<'py>>::Output, <&'a (T0,) as IntoPyObject<'py>>::Error>

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§

type Target = PyTuple

Source§

type Output = Bound<'py, <&'a (T0, T1) as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<&'a (T0, T1) as IntoPyObject<'py>>::Output, <&'a (T0, T1) as IntoPyObject<'py>>::Error>

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<<&'a Option<T> as IntoPyObject<'py>>::Output, <&'a Option<T> as IntoPyObject<'py>>::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<<&'a [T] as IntoPyObject<'py>>::Output, <&'a [T] as IntoPyObject<'py>>::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§

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<<&'a Vec<T> as IntoPyObject<'py>>::Output, <&'a Vec<T> as IntoPyObject<'py>>::Error>

Source§

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

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<<&'a [T; N] as IntoPyObject<'py>>::Output, <&'a [T; N] as IntoPyObject<'py>>::Error>

Source§

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

Source§

type Target = PyString

Source§

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

Source§

type Error = Infallible

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<&&str as IntoPyObject<'py>>::Output, <&&str as IntoPyObject<'py>>::Error>

Source§

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

Source§

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

Source§

type Target = PyAny

Source§

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

Source§

type Error = PyErr

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<&&Path as IntoPyObject<'py>>::Output, <&&Path as IntoPyObject<'py>>::Error>

Source§

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

Source§

type Target = PyString

Source§

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

Source§

type Error = Infallible

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<&Cow<'_, str> as IntoPyObject<'py>>::Output, <&Cow<'_, str> as IntoPyObject<'py>>::Error>

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<<&Cow<'_, OsStr> as IntoPyObject<'py>>::Output, <&Cow<'_, OsStr> as IntoPyObject<'py>>::Error>

Source§

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

Source§

type Target = PyAny

Source§

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

Source§

type Error = PyErr

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<&Cow<'_, Path> as IntoPyObject<'py>>::Output, <&Cow<'_, Path> as IntoPyObject<'py>>::Error>

Source§

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

Source§

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

Source§

type Target = PyBool

Source§

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

Source§

type Error = Infallible

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<&bool as IntoPyObject<'py>>::Output, <&bool as IntoPyObject<'py>>::Error>

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§

type Target = PyInt

Source§

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

Source§

type Error = Infallible

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<&i8 as IntoPyObject<'py>>::Output, <&i8 as IntoPyObject<'py>>::Error>

Source§

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

Source§

type Target = PyInt

Source§

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

Source§

type Error = Infallible

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<&i16 as IntoPyObject<'py>>::Output, <&i16 as IntoPyObject<'py>>::Error>

Source§

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

Source§

type Target = PyInt

Source§

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

Source§

type Error = Infallible

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<&i32 as IntoPyObject<'py>>::Output, <&i32 as IntoPyObject<'py>>::Error>

Source§

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

Source§

type Target = PyInt

Source§

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

Source§

type Error = Infallible

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<&i64 as IntoPyObject<'py>>::Output, <&i64 as IntoPyObject<'py>>::Error>

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§

type Target = PyInt

Source§

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

Source§

type Error = Infallible

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<&u8 as IntoPyObject<'py>>::Output, <&u8 as IntoPyObject<'py>>::Error>

Source§

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

Source§

type Target = PyInt

Source§

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

Source§

type Error = Infallible

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<&u16 as IntoPyObject<'py>>::Output, <&u16 as IntoPyObject<'py>>::Error>

Source§

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

Source§

type Target = PyInt

Source§

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

Source§

type Error = Infallible

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<&u32 as IntoPyObject<'py>>::Output, <&u32 as IntoPyObject<'py>>::Error>

Source§

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

Source§

type Target = PyInt

Source§

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

Source§

type Error = Infallible

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<&u64 as IntoPyObject<'py>>::Output, <&u64 as IntoPyObject<'py>>::Error>

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§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

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§

type Target = PyAny

Source§

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

Source§

type Error = PyErr

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<&Path as IntoPyObject<'py>>::Output, <&Path as IntoPyObject<'py>>::Error>

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 = Borrowed<'static, 'py, <&Utc as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<&Utc as IntoPyObject<'py>>::Output, <&Utc as IntoPyObject<'py>>::Error>

Source§

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

Source§

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

Source§

type Target = PyString

Source§

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

Source§

type Error = Infallible

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<Cow<'_, str> as IntoPyObject<'py>>::Output, <Cow<'_, str> as IntoPyObject<'py>>::Error>

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<<Cow<'_, OsStr> as IntoPyObject<'py>>::Output, <Cow<'_, OsStr> as IntoPyObject<'py>>::Error>

Source§

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

Source§

type Target = PyAny

Source§

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

Source§

type Error = PyErr

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<Cow<'_, Path> as IntoPyObject<'py>>::Output, <Cow<'_, Path> as IntoPyObject<'py>>::Error>

Source§

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

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§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

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 = Borrowed<'static, 'py, <Utc as IntoPyObject<'py>>::Target>

Source§

type Error = PyErr

Source§

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

Source§

impl<'py> IntoPyObject<'py> for TimeDelta

Source§

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

Source§

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

Source§

type Target = PySet

Source§

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

Source§

type Error = PyErr

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<HashSet<K, S> as IntoPyObject<'py>>::Output, <HashSet<K, S> as IntoPyObject<'py>>::Error>

Source§

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

Source§

type Target = PyDict

Source§

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

Source§

type Error = PyErr

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<BTreeMap<K, V> as IntoPyObject<'py>>::Output, <BTreeMap<K, V> as IntoPyObject<'py>>::Error>

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<<HashMap<K, V, H> as IntoPyObject<'py>>::Output, <HashMap<K, V, H> as IntoPyObject<'py>>::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<<IndexMap<K, V, H> as IntoPyObject<'py>>::Output, <IndexMap<K, V, H> as IntoPyObject<'py>>::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 &Cell<T>
where T: Copy + IntoPyObject<'py>,

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<<&Cell<T> as IntoPyObject<'py>>::Output, <&Cell<T> as IntoPyObject<'py>>::Error>

Source§

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

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<Cow<'_, [T]> as IntoPyObject<'py>>::Output, <Cow<'_, [T]> as IntoPyObject<'py>>::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<<Option<T> as IntoPyObject<'py>>::Output, <Option<T> as IntoPyObject<'py>>::Error>

Source§

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

Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<Vec<T> as IntoPyObject<'py>>::Output, <Vec<T> as IntoPyObject<'py>>::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§

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

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<<Cell<T> as IntoPyObject<'py>>::Output, <Cell<T> as IntoPyObject<'py>>::Error>

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<<[T; N] as IntoPyObject<'py>>::Output, <[T; N] as IntoPyObject<'py>>::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, Tz> IntoPyObject<'py> for &DateTime<Tz>
where Tz: TimeZone + IntoPyObject<'py>,

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<<&DateTime<Tz> as IntoPyObject<'py>>::Output, <&DateTime<Tz> as IntoPyObject<'py>>::Error>

Source§

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

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 &'a PyRef<'py, T>
where T: PyClass,

Source§

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

Source§

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

Source§

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

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 PyClassGuard<'a, T>
where T: PyClass,

Source§

impl<'a, 'py, T> IntoPyObject<'py> for PyClassGuardMut<'a, T>
where T: PyClass<Frozen = False>,

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<'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 &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 PyErr

Source§

impl<'py> IntoPyObject<'py> for PyLasso

Source§

impl<'py> IntoPyObject<'py> for PyLinearRegression

Source§

impl<'py> IntoPyObject<'py> for PyLogisticRegression

Source§

impl<'py> IntoPyObject<'py> for PyRidge

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> IntoPyObject<'py> for PyRef<'py, T>
where T: PyClass,

Source§

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