Skip to main content

theway_core/agent/runtime_extensions/
message.rs

1use 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}