pub trait Language: Send + Sync {
// Required methods
fn name(&self) -> &'static str;
fn create_expression(
&self,
script: &str,
) -> Result<Box<dyn Expression>, LanguageError>;
fn create_predicate(
&self,
script: &str,
) -> Result<Box<dyn Predicate>, LanguageError>;
// Provided methods
fn create_mutating_expression(
&self,
_script: &str,
) -> Result<Box<dyn MutatingExpression>, LanguageError> { ... }
fn create_mutating_predicate(
&self,
_script: &str,
) -> Result<Box<dyn MutatingPredicate>, LanguageError> { ... }
}Expand description
A Language factory: produces Expression and Predicate objects.
Required Methods§
fn name(&self) -> &'static str
fn create_expression( &self, script: &str, ) -> Result<Box<dyn Expression>, LanguageError>
fn create_predicate( &self, script: &str, ) -> Result<Box<dyn Predicate>, LanguageError>
Provided Methods§
Sourcefn create_mutating_expression(
&self,
_script: &str,
) -> Result<Box<dyn MutatingExpression>, LanguageError>
fn create_mutating_expression( &self, _script: &str, ) -> Result<Box<dyn MutatingExpression>, LanguageError>
Create a mutating expression. Default returns NotSupported.
Sourcefn create_mutating_predicate(
&self,
_script: &str,
) -> Result<Box<dyn MutatingPredicate>, LanguageError>
fn create_mutating_predicate( &self, _script: &str, ) -> Result<Box<dyn MutatingPredicate>, LanguageError>
Create a mutating predicate. Default returns NotSupported.