ai-agent 0.13.4

Idiomatic agent sdk inspired by the claude code source leak
Documentation
pub struct Pool<T> {
    items: Vec<T>,
    max_size: usize,
}

impl<T> Pool<T> {
    pub fn new(max_size: usize) -> Self {
        Self {
            items: Vec::with_capacity(max_size),
            max_size,
        }
    }

    pub fn acquire(&mut self, factory: impl FnOnce() -> T) -> T {
        self.items.pop().unwrap_or_else(factory)
    }

    pub fn release(&mut self, item: T) {
        if self.items.len() < self.max_size {
            self.items.push(item);
        }
    }

    pub fn clear(&mut self) {
        self.items.clear();
    }

    pub fn available(&self) -> usize {
        self.items.len()
    }
}