Dialect

Trait Dialect 

Source
pub trait Dialect: Send + Sync {
    // Required methods
    fn name(&self) -> &str;
    fn parse<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        sql: &'life1 str,
        schema: Option<&'life2 Schema>,
    ) -> Pin<Box<dyn Future<Output = Vec<Diagnostic>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn completion<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        sql: &'life1 str,
        position: Position,
        schema: Option<&'life2 Schema>,
    ) -> Pin<Box<dyn Future<Output = Vec<CompletionItem>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn hover<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        sql: &'life1 str,
        position: Position,
        schema: Option<&'life2 Schema>,
    ) -> Pin<Box<dyn Future<Output = Option<Hover>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn goto_definition<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        sql: &'life1 str,
        position: Position,
        schema: Option<&'life2 Schema>,
    ) -> Pin<Box<dyn Future<Output = Option<Location>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn references<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        sql: &'life1 str,
        position: Position,
        schema: Option<&'life2 Schema>,
    ) -> Pin<Box<dyn Future<Output = Vec<Location>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn format<'life0, 'life1, 'async_trait>(
        &'life0 self,
        sql: &'life1 str,
    ) -> Pin<Box<dyn Future<Output = String> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn validate<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        sql: &'life1 str,
        schema: Option<&'life2 Schema>,
    ) -> Pin<Box<dyn Future<Output = Vec<Diagnostic>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
}
Expand description

SQL 方言抽象 trait 所有 SQL 方言都需要实现这个 trait

Required Methods§

Source

fn name(&self) -> &str

方言名称

Source

fn parse<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, sql: &'life1 str, schema: Option<&'life2 Schema>, ) -> Pin<Box<dyn Future<Output = Vec<Diagnostic>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

解析 SQL 并返回诊断信息

Source

fn completion<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, sql: &'life1 str, position: Position, schema: Option<&'life2 Schema>, ) -> Pin<Box<dyn Future<Output = Vec<CompletionItem>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

获取代码补全

Source

fn hover<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, sql: &'life1 str, position: Position, schema: Option<&'life2 Schema>, ) -> Pin<Box<dyn Future<Output = Option<Hover>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

获取悬停信息

Source

fn goto_definition<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, sql: &'life1 str, position: Position, schema: Option<&'life2 Schema>, ) -> Pin<Box<dyn Future<Output = Option<Location>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

跳转到定义

Source

fn references<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, sql: &'life1 str, position: Position, schema: Option<&'life2 Schema>, ) -> Pin<Box<dyn Future<Output = Vec<Location>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

查找引用

Source

fn format<'life0, 'life1, 'async_trait>( &'life0 self, sql: &'life1 str, ) -> Pin<Box<dyn Future<Output = String> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

格式化 SQL

Source

fn validate<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, sql: &'life1 str, schema: Option<&'life2 Schema>, ) -> Pin<Box<dyn Future<Output = Vec<Diagnostic>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

验证 SQL 语法

Implementors§