llm-toolkit 0.63.1

A low-level, unopinionated Rust toolkit for the LLM last mile problem.
Documentation
use llm_toolkit::ToPrompt;
use serde::Serialize;

#[test]
fn test_template_file_loading() {
    #[derive(ToPrompt, Serialize)]
    #[prompt(template_file = "tests/templates/integration_test.jinja")]
    struct User {
        name: String,
        age: u32,
    }

    let user = User {
        name: "Alice".to_string(),
        age: 30,
    };

    let prompt = user.to_prompt();
    assert!(prompt.contains("Alice"));
    assert!(prompt.contains("30"));
}

#[test]
fn test_template_file_with_validation() {
    #[derive(ToPrompt, Serialize)]
    #[prompt(template_file = "tests/templates/simple_valid.jinja", validate = true)]
    struct ValidatedUser {
        name: String,
    }

    let user = ValidatedUser {
        name: "Bob".to_string(),
    };

    let prompt = user.to_prompt();
    assert!(prompt.contains("Bob"));
}