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<Self::Output, Self::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<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§

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§

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<Self::Output, Self::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<Self::Output, Self::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§

type Target = PyTuple

Source§

type Output = Bound<'py, <&'a (T0, T1, T2) 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, 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§

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§

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§

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<Self::Output, Self::Error>

Source§

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

Source§

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

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<Self::Output, Self::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<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§

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<Self::Output, Self::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<Self::Output, Self::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<Self::Output, Self::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<Self::Output, Self::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<Self::Output, Self::Error>

Source§

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

Source§

type Target = PyInt

Source§

type Output = Bound<'py, <&i128 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 &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<Self::Output, Self::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<Self::Output, Self::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<Self::Output, Self::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<Self::Output, Self::Error>

Source§

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

Source§

type Target = PyInt

Source§

type Output = Bound<'py, <&u128 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 &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 &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 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<Self::Output, Self::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<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§

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<Self::Output, Self::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<Self::Output, Self::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<Self::Output, Self::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<Self::Output, Self::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<Self::Output, Self::Error>

Source§

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

Source§

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

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<Self::Output, Self::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<Self::Output, Self::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<Self::Output, Self::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<Self::Output, Self::Error>

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

Source§

type Target = PySet

Source§

type Output = Bound<'py, <BTreeSet<K> 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§

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<Self::Output, Self::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<Self::Output, Self::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<Self::Output, Self::Error>

Source§

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

Source§

type Target = PyTuple

Source§

type Output = Bound<'py, <(T0,) 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, 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§

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>

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 &PyBackedBytes

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

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>

impl<'py> IntoPyObject<'py> for Style

impl<'py> IntoPyObject<'py> for PointsType

impl<'py> IntoPyObject<'py> for TextAlign

impl<'py> IntoPyObject<'py> for Pen

impl<'py> IntoPyObject<'py> for Rgba

impl<'py> IntoPyObject<'py> for Ellipse

impl<'py> IntoPyObject<'py> for Points

impl<'py> IntoPyObject<'py> for Text

impl<'py> IntoPyObject<'py> for ShapeDraw