pub struct TemplateEngine<'a> { /* private fields */ }Expand description
Template engine for code generation.
Wraps Handlebars and provides pre-registered templates for generating TypeScript code from MCP tool schemas using progressive loading.
§Thread Safety
This type is Send and Sync, allowing it to be used across
thread boundaries safely.
Implementations§
Source§impl<'a> TemplateEngine<'a>
impl<'a> TemplateEngine<'a>
Sourcepub fn new() -> Result<Self>
pub fn new() -> Result<Self>
Creates a new template engine with registered templates.
Registers all built-in progressive loading templates.
§Errors
Returns error if template registration fails (should not happen with valid built-in templates).
§Examples
use mcp_execution_codegen::template_engine::TemplateEngine;
let engine = TemplateEngine::new().unwrap();Sourcepub fn render<T: Serialize>(
&self,
template_name: &str,
context: &T,
) -> Result<String>
pub fn render<T: Serialize>( &self, template_name: &str, context: &T, ) -> Result<String>
Renders a template with the given context.
§Errors
Returns error if:
- Template name is not registered
- Context cannot be serialized
- Template rendering fails
§Examples
use mcp_execution_codegen::template_engine::TemplateEngine;
use serde_json::json;
let engine = TemplateEngine::new()?;
let context = json!({"name": "test", "description": "A test tool"});
let result = engine.render("progressive/tool", &context)?;Sourcepub fn register_template_string(
&mut self,
name: &str,
template: &str,
) -> Result<()>
pub fn register_template_string( &mut self, name: &str, template: &str, ) -> Result<()>
Registers a custom template.
Allows registering additional templates at runtime.
§Errors
Returns error if template string is invalid.
§Examples
use mcp_execution_codegen::template_engine::TemplateEngine;
let mut engine = TemplateEngine::new().unwrap();
engine.register_template_string(
"custom",
"// Custom template: {{name}}"
).unwrap();Trait Implementations§
Source§impl<'a> Debug for TemplateEngine<'a>
impl<'a> Debug for TemplateEngine<'a>
Auto Trait Implementations§
impl<'a> Freeze for TemplateEngine<'a>
impl<'a> !RefUnwindSafe for TemplateEngine<'a>
impl<'a> Send for TemplateEngine<'a>
impl<'a> Sync for TemplateEngine<'a>
impl<'a> Unpin for TemplateEngine<'a>
impl<'a> !UnwindSafe for TemplateEngine<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more