Skip to main content

theway_core/agent/runtime_extensions/
compaction.rs

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