Skip to main content

PyCallArgs

Trait PyCallArgs 

Source
pub trait PyCallArgs<'py>: Sized + Sealed {
    // Required methods
#[doc(hidden)]
fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, 'py, PyDict>, token: Token, ) -> PyResult<Bound<'py, PyAny>>;
#[doc(hidden)]
fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, token: Token, ) -> PyResult<Bound<'py, PyAny>>; // Provided method
#[doc(hidden)]
fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>> { ... } }
Expand description

This trait marks types that can be used as arguments to Python function calls.

This trait is currently implemented for Rust tuple (up to a size of 12), Bound<'py, PyTuple> and Py<PyTuple>. Custom types that are convertible to PyTuple via IntoPyObject need to do so before passing it to call.

This trait is not intended to used by downstream crates directly. As such it has no publicly available methods and cannot be implemented outside of pyo3. The corresponding public API is available through call (call0, call1 and friends) on PyAnyMethods.

§What is PyCallArgs used for?

PyCallArgs is used internally in pyo3 to dispatch the Python calls in the most optimal way for the current build configuration. Certain types, such as Rust tuples, do allow the usage of a faster calling convention of the Python interpreter (if available). More types that may take advantage from this may be added in the future.

Required Methods§

Source

#[doc(hidden)]
fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, 'py, PyDict>, token: Token, ) -> PyResult<Bound<'py, PyAny>>

Source

#[doc(hidden)]
fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, token: Token, ) -> PyResult<Bound<'py, PyAny>>

Provided Methods§

Source

#[doc(hidden)]
fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

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, T0> PyCallArgs<'py> for &'a (T0,)
where &'a T0: IntoPyObject<'py>,

Source§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

impl<'a, 'py, T0, T1> PyCallArgs<'py> for &'a (T0, T1)

Source§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

impl<'a, 'py, T0, T1, T2> PyCallArgs<'py> for &'a (T0, T1, T2)

Source§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

impl<'a, 'py, T0, T1, T2, T3> PyCallArgs<'py> for &'a (T0, T1, T2, T3)

Source§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

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

Source§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

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

Source§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

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

Source§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

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

Source§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

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

Source§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

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

Source§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

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

Source§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

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

Source§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

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

Source§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, 'py, PyDict>, token: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, token: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

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

Source§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

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

Source§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

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

Source§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

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

Source§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

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

Source§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

impl<'py, T0, T1, T2, T3, T4, T5> PyCallArgs<'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§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

impl<'py, T0, T1, T2, T3, T4, T5, T6> PyCallArgs<'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§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

impl<'py, T0, T1, T2, T3, T4, T5, T6, T7> PyCallArgs<'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§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

impl<'py, T0, T1, T2, T3, T4, T5, T6, T7, T8> PyCallArgs<'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§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

impl<'py, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> PyCallArgs<'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§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

impl<'py, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> PyCallArgs<'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§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

impl<'py, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> PyCallArgs<'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§

fn call( self, function: Borrowed<'_, 'py, PyAny>, kwargs: Borrowed<'_, '_, PyDict>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_positional( self, function: Borrowed<'_, 'py, PyAny>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Source§

fn call_method_positional( self, object: Borrowed<'_, 'py, PyAny>, method_name: Borrowed<'_, 'py, PyString>, _: Token, ) -> PyResult<Bound<'py, PyAny>>

Implementors§

Source§

impl<'py> PyCallArgs<'py> for &Bound<'py, PyTuple>

Source§

impl<'py> PyCallArgs<'py> for &Py<PyTuple>

Source§

impl<'py> PyCallArgs<'py> for Borrowed<'_, 'py, PyTuple>

Source§

impl<'py> PyCallArgs<'py> for Bound<'py, PyTuple>

Source§

impl<'py> PyCallArgs<'py> for Py<PyTuple>

⚠️ Internal Docs ⚠️ Not Public API 👉 Official Docs Here