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}