pub struct VersioningTransformer { /* private fields */ }Expand description
A context transformer that captures dropped messages as versioned snapshots.
Wraps an inner ContextTransformer (typically a sliding window) and
stores evicted messages via a ContextVersionStore. An optional
ContextSummarizer produces summaries for each version.
§Example
ⓘ
use swink_agent::{
SlidingWindowTransformer, VersioningTransformer,
InMemoryVersionStore,
};
use std::sync::Arc;
let store = Arc::new(InMemoryVersionStore::new());
let inner = SlidingWindowTransformer::new(100_000, 50_000, 2);
let transformer = VersioningTransformer::new(inner, store);
let agent = AgentOptions::new(/* ... */)
.with_transform_context(transformer);Implementations§
Source§impl VersioningTransformer
impl VersioningTransformer
Sourcepub fn new(
inner: impl ContextTransformer + 'static,
store: Arc<dyn ContextVersionStore>,
) -> Self
pub fn new( inner: impl ContextTransformer + 'static, store: Arc<dyn ContextVersionStore>, ) -> Self
Create a new versioning transformer wrapping an inner transformer.
Sourcepub fn with_summarizer(self, summarizer: Arc<dyn ContextSummarizer>) -> Self
pub fn with_summarizer(self, summarizer: Arc<dyn ContextSummarizer>) -> Self
Attach a summarizer that produces summaries for each version.
Sourcepub fn store(&self) -> &Arc<dyn ContextVersionStore>
pub fn store(&self) -> &Arc<dyn ContextVersionStore>
Access the underlying version store.
Trait Implementations§
Source§impl ContextTransformer for VersioningTransformer
impl ContextTransformer for VersioningTransformer
Source§fn transform(
&self,
messages: &mut Vec<AgentMessage>,
overflow: bool,
) -> Option<CompactionReport>
fn transform( &self, messages: &mut Vec<AgentMessage>, overflow: bool, ) -> Option<CompactionReport>
Transform the context messages in-place. Read more
Auto Trait Implementations§
impl !Freeze for VersioningTransformer
impl !RefUnwindSafe for VersioningTransformer
impl Send for VersioningTransformer
impl Sync for VersioningTransformer
impl Unpin for VersioningTransformer
impl UnsafeUnpin for VersioningTransformer
impl !UnwindSafe for VersioningTransformer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more