pub trait Visitor {
type Output;
// Required methods
fn visit_operation(
&self,
operation: &Operation,
) -> Result<Self::Output, String>;
fn visit_comparison(
&self,
comparison: &Comparison,
) -> Result<Self::Output, String>;
fn visit_structured_query(
&self,
structured_query: &StructuredQuery,
) -> Result<Self::Output, String>;
// Provided methods
fn allowed_comparators(&self) -> Option<&[Comparator]> { ... }
fn allowed_operators(&self) -> Option<&[Operator]> { ... }
fn validate_func(&self, func: &dyn Function) -> Result<(), String> { ... }
}
Expand description
Defines interface for IR translation using a visitor pattern.
Required Associated Types§
Required Methods§
Sourcefn visit_operation(&self, operation: &Operation) -> Result<Self::Output, String>
fn visit_operation(&self, operation: &Operation) -> Result<Self::Output, String>
Translate an Operation
Sourcefn visit_comparison(
&self,
comparison: &Comparison,
) -> Result<Self::Output, String>
fn visit_comparison( &self, comparison: &Comparison, ) -> Result<Self::Output, String>
Translate a Comparison
Sourcefn visit_structured_query(
&self,
structured_query: &StructuredQuery,
) -> Result<Self::Output, String>
fn visit_structured_query( &self, structured_query: &StructuredQuery, ) -> Result<Self::Output, String>
Translate a StructuredQuery
Provided Methods§
Sourcefn allowed_comparators(&self) -> Option<&[Comparator]>
fn allowed_comparators(&self) -> Option<&[Comparator]>
Allowed comparators for the visitor
Sourcefn allowed_operators(&self) -> Option<&[Operator]>
fn allowed_operators(&self) -> Option<&[Operator]>
Allowed operators for the visitor