thymeleaf 0.1.0-beta.0

A framework-neutral Thymeleaf-compatible dynamic template engine for Rust
Documentation
use std::sync::Arc;

use crate::context::IExpressionContext;
use crate::util::Utf16String;

use super::{IStandardExpression, StandardExpressionResult};

/// Standard Expression 解析器合同。
///
/// 对应 Java: `org.thymeleaf.standard.expression.IStandardExpressionParser`。
///
/// 实现必须能在线程之间安全共享。
pub trait IStandardExpressionParser: Send + Sync {
    /// 解析指定输入并返回表达式对象。
    fn parse_expression(
        &self,
        context: &dyn IExpressionContext,
        input: Option<&Utf16String>,
    ) -> StandardExpressionResult<Arc<dyn IStandardExpression>>;

    /// 是否为支持 `__...__` 预处理的标准解析器实现。
    ///
    /// Java 使用 `instanceof StandardExpressionParser`;Rust 以显式能力方法保留同一
    /// 动态分派语义,第三方解析器默认不启用预处理。
    fn supports_standard_preprocessing(&self) -> bool {
        false
    }
}