thymeleaf 0.1.0-beta.1

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

use crate::engine::TemplateData;
use crate::expression::TemplateValue;
use crate::inline::IInliner;
use crate::util::Utf16String;

/// ElementModel Processor 的上下文结构变更合同。
///
/// 对应 Java:
/// `org.thymeleaf.processor.element.IElementModelStructureHandler`。
pub trait IElementModelStructureHandler {
    /// 清除全部动作。
    fn reset(&mut self);
    /// 设置局部变量。
    fn set_local_variable(&mut self, name: Utf16String, value: Option<Arc<TemplateValue>>);
    /// 删除局部变量。
    fn remove_local_variable(&mut self, name: Utf16String);
    /// 设置 selection target。
    fn set_selection_target(&mut self, selection_target: Option<Arc<TemplateValue>>);
    /// 设置内联器。
    fn set_inliner(&mut self, inliner: Option<Arc<dyn IInliner>>);
    /// 设置后续模型事件的模板来源数据。
    fn set_template_data(&mut self, template_data: Arc<TemplateData>);
}