use serde::{Deserialize, Serialize};
use crate::{MessageId, RuntimeId, TypeId};
#[derive(Deserialize, Serialize)]
pub(crate) struct Message {
pub(crate) target_id: RuntimeId,
pub(crate) source_id: RuntimeId,
pub(crate) message_id: MessageId,
pub(crate) is_answer: bool,
pub(crate) is_closed: bool,
pub(crate) data: MessageBody,
}
#[derive(Deserialize, Serialize)]
pub(crate) struct HandshakeMessage {
pub(crate) runtime_id: RuntimeId,
}
#[derive(Deserialize, Serialize)]
pub(crate) struct RpcMessage {
pub(crate) r#type: TypeId,
pub(crate) data: Result<Vec<u8>, String>, }
#[derive(Deserialize, Serialize)]
pub(crate) enum MessageBody {
Handshake(HandshakeMessage),
Rpc(RpcMessage),
}