freemarker 0.1.1

Apache FreeMarker 语义兼容的 Rust 模板引擎(freemarker-core 迁移)
Documentation
//! 查找结果 —— 对应 Java `freemarker.cache.TemplateLookupResult`
//! (查找策略的返回值:命中的源名 + 源;Java 用 `from(path, source)` 构造,
//! 另有 `isLookupSucceeded`/`getSourceName`/`getTemplateSource` 访问器)

use crate::cache::TemplateSource;

/// 查找结果(对应 TemplateLookupResult.java:命中的源名 + 源)
pub struct LookupResult {
    /// 实际命中的源名(acquisition/本地化后可能不同于请求名;Java
    ///   `TemplateLookupResult.from(path, source)` 中的 path)
    pub source_name: String,
    pub source: Box<dyn TemplateSource>,
}

impl LookupResult {
    /// 对应 `TemplateLookupResult.from(path, source)`(Java:43-52)
    pub fn from(source_name: String, source: Box<dyn TemplateSource>) -> Self {
        LookupResult {
            source_name,
            source,
        }
    }

    /// 是否查找成功(Java `isLookupSucceeded`:命中为 true,负查找为 false——
    /// v1 用 Option 表达,None 即失败)
    pub fn is_lookup_succeeded(&self) -> bool {
        true
    }

    /// 命中的源名(Java `getSourceName`)
    pub fn source_name(&self) -> &str {
        &self.source_name
    }
}