pub enum WorkerToCoordinator {
Register {
worker_id: WorkerId,
capabilities: Capabilities,
},
Heartbeat {
worker_id: WorkerId,
load: LoadMetrics,
},
Event {
worker_id: WorkerId,
plan_id: PlanId,
event: Event,
},
PlanResult {
worker_id: WorkerId,
plan_id: PlanId,
result: PlanResult,
},
JobProgress {
worker_id: WorkerId,
job_id: String,
phase: String,
step: u32,
total: u32,
metrics: Value,
},
JobResult {
worker_id: WorkerId,
job_id: String,
success: bool,
metrics: Value,
output: String,
duration_ms: u64,
},
StateResult {
worker_id: WorkerId,
plan_id: PlanId,
states: HashMap<String, Value>,
},
Error {
message: String,
},
Ack {
worker_id: WorkerId,
},
GradientsResult {
worker_id: WorkerId,
plan_id: PlanId,
gradients: HashMap<String, Value>,
},
}Expand description
Messages from Worker → Coordinator.
Variants§
Register
Worker announces itself.
Fields
capabilities: CapabilitiesWhat the worker can run — the coordinator places plans by these.
Heartbeat
Periodic health check.
Fields
load: LoadMetricsA load snapshot the coordinator reads for placement decisions.
Event
Execution event streamed back in real-time.
Fields
event: EventThe runtime event, forwarded verbatim.
PlanResult
Plan execution completed.
Fields
result: PlanResultSuccess with its output, or failure with the error.
JobProgress
Python job progress update.
Fields
JobResult
Python job result.
Fields
metrics: ValueThe last JSON line the job printed to stdout — the job’s way
of reporting final metrics; {} when it printed none.
StateResult
Response to GetState: trained filter states.
Fields
Error
A command failed, and the client can read why.
Without this variant an error was sent as a bare {"error": …},
which is not a WorkerToCoordinator at all — and the client skips
what it cannot parse, so it waited for a reply that had already
been sent, until the socket closed. Every failure the worker
reported over WebSocket hung its caller.
Ack
A command that produces no data succeeded.
SetState and ApplyGradients need a reply: the client blocks
until it can parse one, so an unknown {"type":"Ack"} would leave
it waiting until the socket closed.
GradientsResult
Response to GetGradients: gradient data.
Trait Implementations§
Source§impl Clone for WorkerToCoordinator
impl Clone for WorkerToCoordinator
Source§fn clone(&self) -> WorkerToCoordinator
fn clone(&self) -> WorkerToCoordinator
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for WorkerToCoordinator
impl Debug for WorkerToCoordinator
Source§impl<'de> Deserialize<'de> for WorkerToCoordinator
impl<'de> Deserialize<'de> for WorkerToCoordinator
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for WorkerToCoordinator
impl RefUnwindSafe for WorkerToCoordinator
impl Send for WorkerToCoordinator
impl Sync for WorkerToCoordinator
impl Unpin for WorkerToCoordinator
impl UnsafeUnpin for WorkerToCoordinator
impl UnwindSafe for WorkerToCoordinator
Blanket Implementations§
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> 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 more