use crate::context::ITemplateContext;
use crate::expression::StandardExpressionResult;
use crate::model::{ICDATASection, IComment, IText};
use crate::util::{CharSequenceValue, Utf16String};
pub trait IInliner: Send + Sync {
fn get_name(&self) -> &Utf16String;
fn inline_text(
&self,
context: &dyn ITemplateContext,
text: &dyn IText,
) -> StandardExpressionResult<Option<Box<dyn CharSequenceValue>>>;
fn inline_cdata_section(
&self,
context: &dyn ITemplateContext,
cdata_section: &dyn ICDATASection,
) -> StandardExpressionResult<Option<Box<dyn CharSequenceValue>>>;
fn inline_comment(
&self,
context: &dyn ITemplateContext,
comment: &dyn IComment,
) -> StandardExpressionResult<Option<Box<dyn CharSequenceValue>>>;
}