Skip to main content

wasm_actor_bridge/
message.rs

1//! Core message types.
2
3use serde::Serialize;
4use serde::de::DeserializeOwned;
5
6/// Trait bound for types that can cross the Worker boundary.
7///
8/// Automatically implemented for any `T: Serialize + DeserializeOwned + 'static`.
9pub trait ActorMessage: Serialize + DeserializeOwned + 'static {}
10impl<T: Serialize + DeserializeOwned + 'static> ActorMessage for T {}
11
12/// An event received from a Web Worker.
13///
14/// Contains the deserialized payload and an optional binary sidecar
15/// that was transferred zero-copy via `ArrayBuffer`.
16#[derive(Debug, Clone)]
17pub struct WorkerEvent<T> {
18    /// The deserialized event payload.
19    pub payload: T,
20    /// Optional binary data transferred zero-copy.
21    pub bytes: Option<Vec<u8>>,
22}