llm_config_templates/
lib.rs

1//! Configuration templates for LLM Config Manager
2//!
3//! This module provides template functionality for creating reusable
4//! configuration patterns with variable substitution.
5//!
6//! ## Example
7//! ```
8//! use llm_config_templates::{Template, TemplateEngine};
9//! use std::collections::HashMap;
10//!
11//! let template_str = "Hello, {{name}}! Your score is {{score}}.";
12//! let mut vars = HashMap::new();
13//! vars.insert("name".to_string(), "Alice".to_string());
14//! vars.insert("score".to_string(), "100".to_string());
15//!
16//! let engine = TemplateEngine::new();
17//! let result = engine.render(template_str, &vars).unwrap();
18//! assert_eq!(result, "Hello, Alice! Your score is 100.");
19//! ```
20
21pub mod engine;
22pub mod parser;
23pub mod template;
24
25pub use engine::TemplateEngine;
26pub use template::Template;
27
28use thiserror::Error;
29
30#[derive(Debug, Error)]
31pub enum TemplateError {
32    #[error("Parse error: {0}")]
33    ParseError(String),
34
35    #[error("Variable not found: {0}")]
36    VariableNotFound(String),
37
38    #[error("Invalid template: {0}")]
39    InvalidTemplate(String),
40
41    #[error("Serialization error: {0}")]
42    Serialization(String),
43}
44
45pub type Result<T> = std::result::Result<T, TemplateError>;