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