use std::sync::Arc;
use crate::generation::TemplateRenderingStrategy;
use crate::protocols::{Protocol, Role};
use super::{DefaultTemplateRenderer, McpServerTemplateRenderer};
pub fn select_renderer(protocol: Protocol, role: Role) -> Arc<dyn TemplateRenderingStrategy> {
match (protocol, role) {
(Protocol::Mcp, Role::Server) => {
Arc::new(McpServerTemplateRenderer::new())
}
_ => {
Arc::new(DefaultTemplateRenderer::new())
}
}
}