pub trait SqlPattern: Send + Sync {
// Required methods
fn id(&self) -> &'static str;
fn matches(&self, stmt: &Statement, ctx: &MatchContext) -> bool;
fn extract(
&self,
stmt: &Statement,
ctx: &MatchContext,
) -> Result<PatternData, ExtractError>;
fn transform(
&self,
data: &PatternData,
ctx: &TransformContext,
) -> Result<String, TransformError>;
// Provided method
fn priority(&self) -> u32 { ... }
}Expand description
Trait for SQL pattern matching and transformation
Required Methods§
fn id(&self) -> &'static str
Sourcefn matches(&self, stmt: &Statement, ctx: &MatchContext) -> bool
fn matches(&self, stmt: &Statement, ctx: &MatchContext) -> bool
Check if this pattern matches the SQL statement
fn extract( &self, stmt: &Statement, ctx: &MatchContext, ) -> Result<PatternData, ExtractError>
Sourcefn transform(
&self,
data: &PatternData,
ctx: &TransformContext,
) -> Result<String, TransformError>
fn transform( &self, data: &PatternData, ctx: &TransformContext, ) -> Result<String, TransformError>
Generate QAIL code from extracted data