Skip to main content

behavior_actors/atomic/dynamic_supervisor/
diagnostic.rs

1//! Exact contradictions and runtime rejections from one dynamic supervisor.
2
3use behavior::{Behavior, BehaviorAddr, ChildReport, EndpointAddress};
4
5use crate::atomic::ProxyDiagnostic;
6use crate::atomic::proxy_creation::StableProxyCreationSettlement;
7use crate::{
8    ActivationPlan, ChildStopped, ProxyInputResult, ProxyOutcome, StableProxy, WorkerSubmission,
9};
10
11/// Diagnostic value requiring one routed attempt or terminal custody.
12pub enum DynamicDiagnostic<Key, Worker, Plan>
13where
14    Worker: Behavior,
15    Plan: ActivationPlan,
16    BehaviorAddr<Worker>: EndpointAddress,
17    StableProxy<Worker, Plan>: Behavior<Protocol = Worker::Protocol>,
18{
19    RejectedInput {
20        key: Key,
21        submission: WorkerSubmission<Worker, Plan>,
22    },
23    RejectedProxyOutcome {
24        report: ChildReport<ProxyOutcome<Worker, Plan>>,
25    },
26    ProxyDiagnosticReported {
27        report: ChildReport<ProxyDiagnostic<Worker, Plan>>,
28    },
29    ProxyInputRejected {
30        key: Key,
31        generation: u64,
32        input: ProxyInputResult<behavior::Here, Worker, Plan>,
33    },
34    ProxyCreationRejected {
35        key: Key,
36        generation: u64,
37        creation: StableProxyCreationSettlement<Worker, Plan>,
38    },
39    ProxyShutdownRejected {
40        key: Key,
41        generation: u64,
42        input: ProxyInputResult<behavior::Here, Worker, Plan>,
43    },
44    RejectedProxyStop {
45        stopped: ChildStopped<BehaviorAddr<Worker>>,
46    },
47}