use std::sync::Arc;
use crate::ToolRegistry;
use super::{BrowseConfig, BrowseExtractTool, BrowseTool, BrowserEngine};
pub fn browsing_tools(engine: Arc<dyn BrowserEngine>) -> Arc<ToolRegistry> {
let registry = ToolRegistry::new();
registry.register(BrowseTool::new(Arc::clone(&engine)));
registry.register(BrowseExtractTool::new(engine));
Arc::new(registry)
}
pub fn browsing_tools_with_config(
engine: Arc<dyn BrowserEngine>,
config: BrowseConfig,
) -> Arc<ToolRegistry> {
let registry = ToolRegistry::new();
registry.register(BrowseTool::with_config(Arc::clone(&engine), config.clone()));
registry.register(BrowseExtractTool::with_config(engine, config));
Arc::new(registry)
}
#[cfg(feature = "native-browser")]
pub fn browsing_tools_with_session(engine: Arc<dyn BrowserEngine>) -> Arc<ToolRegistry> {
use super::{BrowseScriptTool, BrowseSessionTool};
let registry = ToolRegistry::new();
registry.register(BrowseTool::new(Arc::clone(&engine)));
registry.register(BrowseExtractTool::new(Arc::clone(&engine)));
registry.register(BrowseScriptTool::new(Arc::clone(&engine)));
registry.register(BrowseSessionTool::new(engine));
Arc::new(registry)
}
#[cfg(all(test, feature = "native-browser"))]
mod tests {
use super::*;
#[test]
fn browsing_tools_with_session_registers_all_four() {
let _f: fn(Arc<dyn BrowserEngine>) -> Arc<ToolRegistry> = browsing_tools_with_session;
let _ = _f;
}
}