camel_language_api/
lib.rs1pub mod error;
2
3use camel_api::Value;
4use camel_api::exchange::Exchange;
5pub use error::LanguageError;
6
7pub trait Language: Send + Sync {
9 fn name(&self) -> &'static str;
10 fn create_expression(&self, script: &str) -> Result<Box<dyn Expression>, LanguageError>;
11 fn create_predicate(&self, script: &str) -> Result<Box<dyn Predicate>, LanguageError>;
12}
13
14pub trait Expression: Send + Sync {
16 fn evaluate(&self, exchange: &Exchange) -> Result<Value, LanguageError>;
17}
18
19pub trait Predicate: Send + Sync {
21 fn matches(&self, exchange: &Exchange) -> Result<bool, LanguageError>;
22}