pub struct PyInstance { /* private fields */ }Implementations§
Source§impl PyInstance
impl PyInstance
pub fn into_instance(self) -> Instance<PythonActor>
Methods from Deref<Target = Instance<PythonActor>>§
Sourcepub fn introspect_payload(&self) -> IntrospectResult
pub fn introspect_payload(&self) -> IntrospectResult
Snapshot of this actor’s introspection payload.
Returns an IntrospectResult built from live InstanceCell
state, without going through the actor message loop. This is
safe to call from within a handler on the same actor (no
self-send deadlock).
The snapshot is best-effort: it reflects framework-owned state
(status, message count, flight recorder, supervision children)
at the instant of the call. parent is left as None —
callers are responsible for setting topology context.
Note: this acquires a write lock on the flight recorder spool and clones its contents. Suitable for occasional introspection requests, not for hot paths.
Sourcepub fn publish_attrs(&self, attrs: Attrs)
pub fn publish_attrs(&self, attrs: Attrs)
Publish domain-specific properties for introspection.
Publish a complete Attrs bag for introspection. Replaces any previously published attrs.
Debug builds assert that every key in the bag is tagged with
the INTROSPECT meta-attribute.
Sourcepub fn publish_attr<T>(&self, key: Key<T>, value: T)where
T: AttrValue,
pub fn publish_attr<T>(&self, key: Key<T>, value: T)where
T: AttrValue,
Publish a single attr key-value pair for introspection. Merges into existing published attrs (insert or overwrite).
Debug builds assert that the key is tagged with the
INTROSPECT meta-attribute.
Sourcepub fn set_system(&self)
pub fn set_system(&self)
Mark this actor as system/infrastructure. System actors are
hidden by default in the TUI (toggled via s).
Sourcepub fn set_query_child_handler(
&self,
handler: impl Fn(&Reference) -> IntrospectResult + Send + Sync + 'static,
)
pub fn set_query_child_handler( &self, handler: impl Fn(&Reference) -> IntrospectResult + Send + Sync + 'static, )
Register a callback for resolving non-addressable children.
The callback runs on the actor’s introspect task (not the
actor loop), so it must be Send + Sync and must not access
actor-mutable state. Capture cloned Proc references.
Only HostAgent uses this today — for resolving system
procs that have no independent ProcAgent.
Sourcepub fn abort(&self, reason: &str) -> Result<(), ActorError>
pub fn abort(&self, reason: &str) -> Result<(), ActorError>
Signal the actor to abort with a provided reason.
Sourcepub fn open_port<M>(&self) -> (PortHandle<M>, PortReceiver<M>)where
M: Message,
pub fn open_port<M>(&self) -> (PortHandle<M>, PortReceiver<M>)where
M: Message,
Open a new port that accepts M-typed messages. The returned port may be freely cloned, serialized, and passed around. The returned receiver should only be retained by the actor responsible for processing the delivered messages.
Sourcepub fn open_once_port<M>(&self) -> (OncePortHandle<M>, OncePortReceiver<M>)where
M: Message,
pub fn open_once_port<M>(&self) -> (OncePortHandle<M>, OncePortReceiver<M>)where
M: Message,
Open a new one-shot port that accepts M-typed messages. The returned port may be used to send a single message; ditto the receiver may receive a single message.
Sourcepub fn locals(&self) -> &ActorLocalStorage
pub fn locals(&self) -> &ActorLocalStorage
Get the per-instance local storage.
Sourcepub fn post(&self, port_id: PortId, headers: Flattrs, message: Any)
pub fn post(&self, port_id: PortId, headers: Flattrs, message: Any)
Send a message to the actor running on the proc.
Sourcepub fn self_message_with_delay<M>(
&self,
message: M,
delay: Duration,
) -> Result<(), ActorError>
pub fn self_message_with_delay<M>( &self, message: M, delay: Duration, ) -> Result<(), ActorError>
Send a message to the actor itself with a delay usually to trigger some event.
Sourcepub async fn handle_supervision_event(
&self,
actor: &mut A,
supervision_event: ActorSupervisionEvent,
) -> Result<(), ActorError>
pub async fn handle_supervision_event( &self, actor: &mut A, supervision_event: ActorSupervisionEvent, ) -> Result<(), ActorError>
Handle a supervision event using the provided actor.
Sourcepub fn spawn<C>(&self, actor: C) -> Result<ActorHandle<C>, Error>where
C: Actor,
pub fn spawn<C>(&self, actor: C) -> Result<ActorHandle<C>, Error>where
C: Actor,
Spawn on child on this instance.
Sourcepub fn spawn_with_name<C>(
&self,
name: &str,
actor: C,
) -> Result<ActorHandle<C>, Error>where
C: Actor,
pub fn spawn_with_name<C>(
&self,
name: &str,
actor: C,
) -> Result<ActorHandle<C>, Error>where
C: Actor,
Spawn a named child actor on this instance. The child gets a descriptive name in its ActorId instead of inheriting this instance’s name. Supervision linkage is preserved.
Sourcepub fn child(&self) -> Result<(Instance<()>, ActorHandle<()>), Error>
pub fn child(&self) -> Result<(Instance<()>, ActorHandle<()>), Error>
Create a new direct child instance.
Sourcepub fn port<M>(&self) -> PortHandle<M>
pub fn port<M>(&self) -> PortHandle<M>
Return a handle port handle representing the actor’s message handler for M-typed messages.
Sourcepub fn handle(&self) -> ActorHandle<A>
pub fn handle(&self) -> ActorHandle<A>
The ActorHandle corresponding to this instance.
Sourcepub fn instance_id(&self) -> Uuid
pub fn instance_id(&self) -> Uuid
Return this instance’s ID.
Sourcepub fn parent_handle<P>(&self) -> Option<ActorHandle<P>>where
P: Actor,
pub fn parent_handle<P>(&self) -> Option<ActorHandle<P>>where
P: Actor,
Return a handle to this instance’s parent actor, if it has one.
Trait Implementations§
Source§impl Clone for PyInstance
impl Clone for PyInstance
Source§impl Deref for PyInstance
impl Deref for PyInstance
Source§impl<I: Actor<A = PythonActor>> From<I> for PyInstance
impl<I: Actor<A = PythonActor>> From<I> for PyInstance
Source§impl<'py> IntoPyObject<'py> for PyInstance
impl<'py> IntoPyObject<'py> for PyInstance
Source§type Target = PyInstance
type Target = PyInstance
Source§type Output = Bound<'py, <PyInstance as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <PyInstance as IntoPyObject<'py>>::Target>
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>
Source§impl PyClass for PyInstance
impl PyClass for PyInstance
Source§impl PyClassImpl for PyInstance
impl PyClassImpl for PyInstance
Source§const IS_BASETYPE: bool = false
const IS_BASETYPE: bool = false
Source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
Source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
Source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
Source§const IS_IMMUTABLE_TYPE: bool = false
const IS_IMMUTABLE_TYPE: bool = false
Source§const RAW_DOC: &'static CStr = c"\x00"
const RAW_DOC: &'static CStr = c"\x00"
Source§const DOC: &'static CStr
const DOC: &'static CStr
text_signature if a constructor is defined. Read moreSource§type ThreadChecker = SendablePyClass<PyInstance>
type ThreadChecker = SendablePyClass<PyInstance>
type Inventory = Pyo3MethodsInventoryForPyInstance
Source§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Source§type BaseNativeType = PyAny
type BaseNativeType = PyAny
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<'a, 'holder, 'py> PyFunctionArgument<'a, 'holder, 'py, false> for &'holder PyInstance
impl<'a, 'holder, 'py> PyFunctionArgument<'a, 'holder, 'py, false> for &'holder PyInstance
Source§impl<'a, 'holder, 'py> PyFunctionArgument<'a, 'holder, 'py, false> for &'holder mut PyInstance
impl<'a, 'holder, 'py> PyFunctionArgument<'a, 'holder, 'py, false> for &'holder mut PyInstance
Source§impl PyTypeInfo for PyInstance
impl PyTypeInfo for PyInstance
Source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
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
object is an instance of this type.impl DerefToPyAny for PyInstance
Auto Trait Implementations§
impl Freeze for PyInstance
impl !RefUnwindSafe for PyInstance
impl Send for PyInstance
impl Sync for PyInstance
impl Unpin for PyInstance
impl !UnwindSafe for PyInstance
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FromPyObject<'_> for Twhere
T: PyClass + Clone,
impl<T> FromPyObject<'_> for Twhere
T: PyClass + Clone,
§fn extract_bound(obj: &Bound<'_, PyAny>) -> Result<T, PyErr>
fn extract_bound(obj: &Bound<'_, PyAny>) -> Result<T, PyErr>
§impl<'py, T> FromPyObjectBound<'_, 'py> for Twhere
T: FromPyObject<'py>,
impl<'py, T> FromPyObjectBound<'_, 'py> for Twhere
T: FromPyObject<'py>,
§fn from_py_object_bound(ob: Borrowed<'_, 'py, PyAny>) -> Result<T, PyErr>
fn from_py_object_bound(ob: Borrowed<'_, 'py, PyAny>) -> Result<T, PyErr>
§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>
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>
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>
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>
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>
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>
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>,
Layered].