vtcode_core/tools/registry/
optimization_facade.rs1use std::sync::Arc;
4
5use crate::core::memory_pool::MemoryPool;
6
7use super::ToolRegistry;
8
9impl ToolRegistry {
10 pub fn has_optimizations_enabled(&self) -> bool {
12 self.optimization_config.tool_registry.use_optimized_registry || self.optimization_config.memory_pool.enabled
13 }
14
15 pub fn memory_pool_ref(&self) -> &MemoryPool {
17 self.memory_pool.as_ref()
18 }
19
20 pub fn memory_pool(&self) -> &Arc<MemoryPool> {
22 &self.memory_pool
23 }
24
25 pub fn clear_hot_cache(&self) {
27 if self.optimization_config.tool_registry.use_optimized_registry {
28 self.hot_tool_cache.write().clear();
29 }
30 }
31
32 pub fn hot_cache_stats(&self) -> (usize, usize) {
34 let cache = self.hot_tool_cache.read();
35 (cache.len(), cache.cap().get())
36 }
37
38 pub fn configure_optimizations(&mut self, config: vtcode_config::OptimizationConfig) {
40 self.optimization_config = config;
41
42 if self.optimization_config.tool_registry.use_optimized_registry {
44 let new_size = self.optimization_config.tool_registry.hot_cache_size;
45 if let Some(new_cache_size) = std::num::NonZeroUsize::new(new_size) {
46 *self.hot_tool_cache.write() = lru::LruCache::new(new_cache_size);
47 }
48 }
49 }
50
51 pub fn optimization_config(&self) -> &vtcode_config::OptimizationConfig {
53 &self.optimization_config
54 }
55}