theway_core/agent/runtime_extensions/
message.rs1use async_trait::async_trait;
2
3use super::{RawRuntimeExtensionResult, RuntimeExtensionInvocation, validate_domain_event};
4
5#[async_trait]
6pub trait RuntimeMessageExtensionPort: Send + Sync {
7 async fn invoke_message(
8 &self,
9 invocation: RuntimeExtensionInvocation,
10 ) -> RawRuntimeExtensionResult;
11
12 async fn dispatch_message(
13 &self,
14 invocation: RuntimeExtensionInvocation,
15 ) -> super::RuntimeExtensionResult {
16 validate_domain_event(super::RuntimeExtensionDomain::Message, &invocation)?;
17 super::validate_hook_result(&invocation, self.invoke_message(invocation.clone()).await?)
18 }
19}