Skip to main content

TemplateEngine

Struct TemplateEngine 

Source
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.

§Examples

use mcp_execution_codegen::template_engine::TemplateEngine;

let engine = TemplateEngine::new().unwrap();
// engine can now render templates

Implementations§

Source§

impl<'a> TemplateEngine<'a>

Source

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();
Source

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)?;
Source

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>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for TemplateEngine<'_>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for TemplateEngine<'a>

§

impl<'a> !UnwindSafe for TemplateEngine<'a>

§

impl<'a> Freeze for TemplateEngine<'a>

§

impl<'a> Send for TemplateEngine<'a>

§

impl<'a> Sync for TemplateEngine<'a>

§

impl<'a> Unpin for TemplateEngine<'a>

§

impl<'a> UnsafeUnpin for TemplateEngine<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more