pub enum IpcMessage {
Spikes(SpikeBatch),
Embeddings(EmbeddingBatch),
Stimuli(StimulusBatch),
Neuromodulators(NeuromodulatorSnapshot),
Loss(f32),
ConfigUpdate(ConfigPayload),
GradientUpdate(GradientBatch),
EligibilityTraces(TraceBatch),
TrainingComplete,
Shutdown,
Ping,
}Expand description
Core message enum for cross-process IPC.
Messages are separated into:
- Input messages (spikes, embeddings, stimuli, neuromodulators, config)
- Output messages (gradients, traces, training status)
- Control messages (shutdown, ping)
Variant names (Spikes, EligibilityTraces, …) are serde identifiers and
must stay stable. The payloads they wrap are IPC transport types, not
in-memory training structs (see the module docs).
Versioned ingress should go through
crate::decode_ipc_message_json: that entry point classifies
crate::WireCompatibility before the payload is used. Direct
Deserialize on this enum is the unversioned (legacy) encoding.
Unknown object fields on payloads are ignored (forward compatible).
Unknown variant names fail to deserialize; this enum has no Default
and no serde other catch-all, so they never become a valid message.
Variants§
Spikes(SpikeBatch)
Wire payload for an IPC SpikeBatch (not an in-memory training batch).
Embeddings(EmbeddingBatch)
Stimuli(StimulusBatch)
Typed continuous runtime stimulus ingress between a producer and a
consumer. See StimulusBatch for channel-width and
invalid/missing-channel semantics.
Neuromodulators(NeuromodulatorSnapshot)
Typed neuromodulator ingress, replacing an unstructured float tail.
See NeuromodulatorSnapshot and Validate.
Loss(f32)
ConfigUpdate(ConfigPayload)
GradientUpdate(GradientBatch)
EligibilityTraces(TraceBatch)
Wire payload for an IPC TraceBatch (not an in-memory training batch).
TrainingComplete
Shutdown
Ping
Trait Implementations§
Source§impl Clone for IpcMessage
impl Clone for IpcMessage
Source§impl Debug for IpcMessage
impl Debug for IpcMessage
Source§impl<'de> Deserialize<'de> for IpcMessage
impl<'de> Deserialize<'de> for IpcMessage
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>,
Source§impl PartialEq for IpcMessage
impl PartialEq for IpcMessage
Source§impl Serialize for IpcMessage
impl Serialize for IpcMessage
impl StructuralPartialEq for IpcMessage
Source§impl Validate for IpcMessage
impl Validate for IpcMessage
Source§fn validate_with(&self, limits: ProtocolLimits) -> Result<(), ValidationError>
fn validate_with(&self, limits: ProtocolLimits) -> Result<(), ValidationError>
Source§fn validate(&self) -> Result<(), ValidationError>
fn validate(&self) -> Result<(), ValidationError>
ProtocolLimits::DEFAULT.