pub struct PendingMessage { /* private fields */ }Expand description
A message that is pending resolution of async values before it can be sent.
Contains a PythonMessageKind and a PicklingState. The PicklingState may contain
pending pickles (unresolved async values) that must be resolved before the message
can be converted into a PythonMessage.
Implementations§
Source§impl PendingMessage
impl PendingMessage
Sourcepub fn new(kind: PythonMessageKind, state: PicklingState) -> Self
pub fn new(kind: PythonMessageKind, state: PicklingState) -> Self
Create a new PendingMessage from a kind and pickling state.
Sourcepub fn take(&mut self) -> PyResult<PendingMessage>
pub fn take(&mut self) -> PyResult<PendingMessage>
Take ownership of the inner state from a mutable reference.
This is used by pyo3 pymethods that receive &mut PendingMessage
but need to pass ownership to the trait method.
Sourcepub async fn resolve(self) -> PyResult<PythonMessage>
pub async fn resolve(self) -> PyResult<PythonMessage>
Resolve all pending pickles and convert this into a PythonMessage.
This is an async method that:
- Awaits all pending pickles in the PicklingState
- Re-pickles the resolved object
- Returns a PythonMessage with the resolved bytes (no GIL needed for final step)
Source§impl PendingMessage
impl PendingMessage
Sourcepub fn py_new(
kind: PythonMessageKind,
state: PyRefMut<'_, PicklingState>,
) -> PyResult<Self>
pub fn py_new( kind: PythonMessageKind, state: PyRefMut<'_, PicklingState>, ) -> PyResult<Self>
Create a new PendingMessage from a kind and pickling state.
Trait Implementations§
Source§impl<'py> IntoPyObject<'py> for PendingMessage
impl<'py> IntoPyObject<'py> for PendingMessage
Source§type Target = PendingMessage
type Target = PendingMessage
The Python output type
Source§type Output = Bound<'py, <PendingMessage as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <PendingMessage as IntoPyObject<'py>>::Target>
The smart pointer type to use. Read more
Source§fn into_pyobject(
self,
py: Python<'py>,
) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
Performs the conversion.
Source§impl PyClass for PendingMessage
impl PyClass for PendingMessage
Source§impl PyClassImpl for PendingMessage
impl PyClassImpl for PendingMessage
Source§const IS_BASETYPE: bool = false
const IS_BASETYPE: bool = false
#[pyclass(subclass)]
Source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
#[pyclass(extends=…)]
Source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
#[pyclass(mapping)]
Source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
#[pyclass(sequence)]
Source§const IS_IMMUTABLE_TYPE: bool = false
const IS_IMMUTABLE_TYPE: bool = false
#[pyclass(immutable_type)]
Source§const RAW_DOC: &'static CStr = /// A message that is pending resolution of async values before it can be sent.
///
/// Contains a `PythonMessageKind` and a `PicklingState`. The `PicklingState` may contain
/// pending pickles (unresolved async values) that must be resolved before the message
/// can be converted into a `PythonMessage`.
const RAW_DOC: &'static CStr = /// A message that is pending resolution of async values before it can be sent. /// /// Contains a `PythonMessageKind` and a `PicklingState`. The `PicklingState` may contain /// pending pickles (unresolved async values) that must be resolved before the message /// can be converted into a `PythonMessage`.
Docstring for the class provided on the struct or enum. Read more
Source§const DOC: &'static CStr
const DOC: &'static CStr
Fully rendered class doc, including the
text_signature if a constructor is defined. Read moreSource§type ThreadChecker = SendablePyClass<PendingMessage>
type ThreadChecker = SendablePyClass<PendingMessage>
This handles following two situations: Read more
type Inventory = Pyo3MethodsInventoryForPendingMessage
Source§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Immutable or mutable
Source§type BaseNativeType = PyAny
type BaseNativeType = PyAny
The closest native ancestor. This is
PyAny by default, and when you declare
#[pyclass(extends=PyDict)], it’s PyDict.fn items_iter() -> PyClassItemsIter
fn lazy_type_object() -> &'static LazyTypeObject<Self>
fn dict_offset() -> Option<isize>
fn weaklist_offset() -> Option<isize>
Source§impl PyClassNewTextSignature for PendingMessage
impl PyClassNewTextSignature for PendingMessage
const TEXT_SIGNATURE: &'static str = "(kind, state)"
Source§impl<'a, 'holder, 'py> PyFunctionArgument<'a, 'holder, 'py, false> for &'holder PendingMessage
impl<'a, 'holder, 'py> PyFunctionArgument<'a, 'holder, 'py, false> for &'holder PendingMessage
Source§impl<'a, 'holder, 'py> PyFunctionArgument<'a, 'holder, 'py, false> for &'holder mut PendingMessage
impl<'a, 'holder, 'py> PyFunctionArgument<'a, 'holder, 'py, false> for &'holder mut PendingMessage
Source§impl PyTypeInfo for PendingMessage
impl PyTypeInfo for PendingMessage
Source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
Returns the PyTypeObject instance for this type.
§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
Returns the safe abstraction over the type object.
§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
Checks if
object is an instance of this type or a subclass of this type.§fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
Checks if
object is an instance of this type.impl DerefToPyAny for PendingMessage
Auto Trait Implementations§
impl !Freeze for PendingMessage
impl !RefUnwindSafe for PendingMessage
impl Send for PendingMessage
impl Sync for PendingMessage
impl Unpin for PendingMessage
impl !UnwindSafe for PendingMessage
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<A, M> Handler<IndexedErasedUnbound<M>> for A
impl<A, M> Handler<IndexedErasedUnbound<M>> for A
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> IntoPyObjectBox for Twhere
T: for<'py> IntoPyObject<'py> + Send,
impl<T> IntoPyObjectBox for Twhere
T: for<'py> IntoPyObject<'py> + Send,
fn into_py_object(self: Box<T>, py: Python<'_>) -> Result<Py<PyAny>, PyErr>
§impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
§fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
Converts
self into an owned Python object, dropping type information.§fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
Converts
self into an owned Python object, dropping type information and unbinding it
from the 'py lifetime.§fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
Converts
self into a Python object. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].