Skip to main content

Coroutine

Struct Coroutine 

Source
pub struct Coroutine {
    name: Option<Py<PyString>>,
    qualname_prefix: Option<&'static str>,
    throw_callback: Option<ThrowCallback>,
    future: Option<Pin<Box<dyn Future<Output = PyResult<Py<PyAny>>> + Send>>>,
    waker: Option<Arc<AsyncioWaker>>,
}
Available on crate feature experimental-async only.
Expand description

Python coroutine wrapping a Future.

Fields§

§name: Option<Py<PyString>>§qualname_prefix: Option<&'static str>§throw_callback: Option<ThrowCallback>§future: Option<Pin<Box<dyn Future<Output = PyResult<Py<PyAny>>> + Send>>>§waker: Option<Arc<AsyncioWaker>>

Implementations§

Source§

impl Coroutine

Source§

impl Coroutine

Source

#[doc(hidden)]
pub const _PYO3_DEF: AddClassToModule<Self>

Source§

impl Coroutine

Source

#[doc(hidden)]
pub const _PYO3_INTROSPECTION_ID: &'static str = "1917796429675682910"

Source§

impl Coroutine

Source§

impl Coroutine

Source

pub(crate) fn new<'py, F>( name: Option<Bound<'py, PyString>>, qualname_prefix: Option<&'static str>, throw_callback: Option<ThrowCallback>, future: F, ) -> Self
where F: Future<Output = Result<Py<PyAny>, PyErr>> + Send + 'static,

Wrap a future into a Python coroutine.

Coroutine send polls the wrapped future, ignoring the value passed (should always be None anyway).

Coroutine throw` drop the wrapped future and reraise the exception passed

Source

fn poll( &mut self, py: Python<'_>, throw: Option<Py<PyAny>>, ) -> PyResult<Py<PyAny>>

Source§

impl Coroutine

Source

fn __name__(&self, py: Python<'_>) -> PyResult<Py<PyString>>

Source

fn __qualname__<'py>(&self, py: Python<'py>) -> PyResult<Bound<'py, PyString>>

Source

fn send( &mut self, py: Python<'_>, _value: &Bound<'_, PyAny>, ) -> PyResult<Py<PyAny>>

Source

fn throw(&mut self, py: Python<'_>, exc: Py<PyAny>) -> PyResult<Py<PyAny>>

Source

fn close(&mut self)

Source

fn __await__(self_: Py<Self>) -> Py<Self>

Source

fn __next__(&mut self, py: Python<'_>) -> PyResult<Py<PyAny>>

Source§

impl Coroutine

Trait Implementations§

Source§

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

Source§

const OUTPUT_TYPE: PyStaticExpr = <Coroutine as crate::PyTypeInfo>::TYPE_HINT

Available on crate feature experimental-inspect only.
Extracts the type hint information for this type when it appears as a return value. Read more
Source§

type Target = Coroutine

The Python output type
Source§

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

The smart pointer type to use. Read more
Source§

type Error = PyErr

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

#[doc(hidden)]
fn owned_sequence_into_pyobject<I>( iter: I, py: Python<'py>, _: Token, ) -> Result<Bound<'py, PyAny>, PyErr>
where I: IntoIterator<Item = Self> + AsRef<[Self]>, I::IntoIter: ExactSizeIterator<Item = Self>,

Converts sequence of Self into a Python object. Used to specialize Vec<u8>, [u8; N] and SmallVec<[u8; N]> as a sequence of bytes into a bytes object.
Source§

#[doc(hidden)]
const SEQUENCE_OUTPUT_TYPE: PyStaticExpr = _

Available on crate feature experimental-inspect only.
Source§

impl PyClass for Coroutine

Source§

const NAME: &str = "Coroutine"

Name of the class. Read more
Source§

type Frozen = False

Whether the pyclass is frozen. Read more
Source§

impl PyClassImpl for Coroutine

Source§

const MODULE: Option<&str> = ::core::option::Option::None

Module which the class will be associated with. Read more
Source§

const IS_BASETYPE: bool = false

#[pyclass(subclass)]
Source§

const IS_SUBCLASS: bool = false

#[pyclass(extends=…)]
Source§

const IS_MAPPING: bool = false

#[pyclass(mapping)]
Source§

const IS_SEQUENCE: bool = false

#[pyclass(sequence)]
Source§

const IS_IMMUTABLE_TYPE: bool = false

#[pyclass(immutable_type)]
Source§

const RAW_DOC: &'static CStr = /// Python coroutine wrapping a [`Future`].

Docstring for the class provided on the struct or enum. Read more
Source§

const DOC: &'static CStr

Fully rendered class doc, including the text_signature if a constructor is defined. Read more
Source§

type Layout = <<Coroutine as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<Coroutine>

Description of how this class is laid out in memory
Source§

type BaseType = PyAny

Base class
Source§

type ThreadChecker = NoopThreadChecker

This handles following two situations: Read more
Source§

type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild

Immutable or mutable
Source§

type Dict = PyClassDummySlot

Specify this class has #[pyclass(dict)] or not.
Source§

type WeakRef = PyClassDummySlot

Specify this class has #[pyclass(weakref)] or not.
Source§

type BaseNativeType = PyAny

The closest native ancestor. This is PyAny by default, and when you declare #[pyclass(extends=PyDict)], it’s PyDict.
Source§

fn items_iter() -> PyClassItemsIter

Source§

fn lazy_type_object() -> &'static LazyTypeObject<Self>

Source§

fn dict_offset() -> Option<PyObjectOffset>

Used to provide the dictoffset slot (equivalent to tp_dictoffset)
Source§

fn weaklist_offset() -> Option<PyObjectOffset>

Used to provide the weaklistoffset slot (equivalent to tp_weaklistoffset
Source§

impl PyMethods<Coroutine> for PyClassImplCollector<Coroutine>

Source§

fn py_methods(self) -> &'static PyClassItems

Available on non-crate feature multiple-pymethods only.
Source§

impl PyTypeInfo for Coroutine

Source§

const NAME: &str = <Self as crate::PyClass>::NAME

👎Deprecated since 0.28.0:

prefer using ::type_object(py).name() to get the correct runtime value

Class name.
Source§

const MODULE: Option<&str> = <Self as crate::impl_::pyclass::PyClassImpl>::MODULE

👎Deprecated since 0.28.0:

prefer using ::type_object(py).module() to get the correct runtime value

Module name, if any.
Source§

const TYPE_HINT: PyStaticExpr

Available on crate feature experimental-inspect only.
Provides the full python type as a type hint.
Source§

fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject

Returns the PyTypeObject instance for this type.
Source§

fn type_object(py: Python<'_>) -> Bound<'_, PyType>

Returns the safe abstraction over the type object.
Source§

fn is_type_of(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type or a subclass of this type.
Source§

fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type.
Source§

impl DerefToPyAny for Coroutine

Source§

impl ExtractPyClassWithClone for Coroutine

Source§

impl Sync for Coroutine

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<'py, T> IntoPyCallbackOutput<'py, *mut PyObject> for T
where T: IntoPyObject<'py>,

Source§

impl<'py, T> IntoPyCallbackOutput<'py, Py<PyAny>> for T
where T: IntoPyObject<'py>,

Source§

fn convert(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>

Source§

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

Source§

fn into_bound_py_any(self, py: Python<'py>) -> PyResult<Bound<'py, PyAny>>

Converts self into an owned Python object, dropping type information.
Source§

fn into_py_any(self, py: Python<'py>) -> PyResult<Py<PyAny>>

Converts self into an owned Python object, dropping type information and unbinding it from the 'py lifetime.
Source§

fn into_pyobject_or_pyerr(self, py: Python<'py>) -> PyResult<Self::Output>

Converts self into a Python object. Read more
Source§

impl<'py, T> PyClassInit<'py, false, false> for T
where T: IntoPyObject<'py>,

Source§

fn init( self, cls: Borrowed<'_, 'py, PyType>, ) -> Result<Bound<'py, PyAny>, PyErr>

Source§

impl<'py, T> PyClassInit<'py, true, false> for T

Source§

fn init( self, cls: Borrowed<'_, 'py, PyType>, ) -> Result<Bound<'py, PyAny>, PyErr>

Source§

impl<T> PyErrArguments for T
where T: for<'py> IntoPyObject<'py> + Send + Sync,

Source§

fn arguments(self, py: Python<'_>) -> Py<PyAny>

Arguments for exception
Source§

impl<'a, T> PyReturnType for T
where T: IntoPyObject<'a>,

Source§

const OUTPUT_TYPE: PyStaticExpr = const OUTPUT_TYPE: PyStaticExpr = T::OUTPUT_TYPE;

Available on crate feature experimental-inspect only.
The function return type
Source§

impl<T> PyTypeCheck for T
where T: PyTypeInfo,

Source§

const NAME: &'static str = const NAME: &'static str = T::NAME;

👎Deprecated since 0.27.0:

Use ::classinfo_object() instead and format the type name at runtime. Note that using built-in cast features is often better than manual PyTypeCheck usage.

Name of self. This is used in error messages, for example.
Source§

const TYPE_HINT: PyStaticExpr = const TYPE_HINT: PyStaticExpr = <T as PyTypeInfo>::TYPE_HINT;

Available on crate feature experimental-inspect only.
Provides the full python type of the allowed values as a Python type hint.
Source§

fn type_check(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of Self, which may include a subtype. Read more
Source§

fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>

Returns the expected type as a possible argument for the isinstance and issubclass function. Read more
Source§

impl<T> SizedTypeProperties for T

Source§

#[doc(hidden)]
const SIZE: usize = _

🔬This is a nightly-only experimental API. (sized_type_properties)
Source§

#[doc(hidden)]
const ALIGN: usize = _

🔬This is a nightly-only experimental API. (sized_type_properties)
Source§

#[doc(hidden)]
const ALIGNMENT: Alignment = _

🔬This is a nightly-only experimental API. (ptr_alignment_type)
Source§

#[doc(hidden)]
const IS_ZST: bool = _

🔬This is a nightly-only experimental API. (sized_type_properties)
true if this type requires no storage. false if its size is greater than zero. Read more
Source§

#[doc(hidden)]
const LAYOUT: Layout = _

🔬This is a nightly-only experimental API. (sized_type_properties)
Source§

#[doc(hidden)]
const MAX_SLICE_LEN: usize = _

🔬This is a nightly-only experimental API. (sized_type_properties)
The largest safe length for a [Self]. Read more
Source§

impl<T> SomeWrap<T> for T

Source§

fn wrap(self) -> Option<T>

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<'py, T> Sealed<'py, *mut PyObject> for T
where T: IntoPyObject<'py>,

Source§

impl<'py, T> Sealed<'py, Py<PyAny>> for T
where T: IntoPyObject<'py>,

Source§

impl<'a, T> Sealed for T
where T: IntoPyObject<'a>,

Source§

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

Source§

impl<T> Ungil for T
where T: Send,

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