Skip to main content

compressor

Attribute Macro compressor 

Source
#[compressor]
Expand description

Generate a ContextCompressor implementation from an async function.

§Example

#[compressor]
async fn keep_recent(input: CompressionInput) -> Result<CompressionOutput> {
    let keep = input.messages.len().min(20);
    let evicted = input.messages[..input.messages.len() - keep].to_vec();
    let messages = input.messages[input.messages.len() - keep..].to_vec();
    Ok(CompressionOutput { messages, evicted })
}
// Generates: KeepRecentCompressor + impl ContextCompressor