datasources 0.1.5

Async datasource interfaces, middleware, registry, and test doubles
Documentation
use crate::select_statement::SelectStatement;
use super::bulk_delete_statement::BulkDeleteStatement;
use super::bulk_delete_statement_text_renderer::BulkDeleteStatementTextRenderer;
use super::bulk_insert_statement::BulkInsertStatement;
use super::bulk_insert_statement_text_renderer::BulkInsertStatementTextRenderer;
use super::bulk_update_statement::BulkUpdateStatement;
use super::bulk_update_statement_text_renderer::BulkUpdateStatementTextRenderer;
use super::alter_table_statement::AlterTableStatement;
use super::create_index_statement::CreateIndexStatement;
use super::create_index_statement_text_renderer::CreateIndexStatementTextRenderer;
use super::create_table_statement::CreateTableStatement;
use super::create_table_statement_text_renderer;
use super::create_trigger_statement::CreateTriggerStatement;
use super::create_trigger_statement_text_renderer::CreateTriggerStatementTextRenderer;
use super::drop_index_statement::DropIndexStatement;
use super::drop_index_statement_text_renderer::DropIndexStatementTextRenderer;
use super::drop_routine_statement::DropRoutineStatement;
use super::drop_routine_statement_text_renderer::DropRoutineStatementTextRenderer;
use super::create_create_stored_procedure_statement::CreateCreateStoredProcedureStatement;
use super::create_create_stored_procedure_statement_text_renderer::CreateCreateStoredProcedureStatementTextRenderer;
use super::create_read_stored_procedure_statement::CreateReadStoredProcedureStatement;
use super::create_read_stored_procedure_statement_text_renderer::CreateReadStoredProcedureStatementTextRenderer;
use super::create_update_stored_procedure_statement::CreateUpdateStoredProcedureStatement;
use super::create_update_stored_procedure_statement_text_renderer::CreateUpdateStoredProcedureStatementTextRenderer;
use super::create_delete_stored_procedure_statement::CreateDeleteStoredProcedureStatement;
use super::create_delete_stored_procedure_statement_text_renderer::CreateDeleteStoredProcedureStatementTextRenderer;
use super::create_bulk_create_stored_procedure_statement::CreateBulkCreateStoredProcedureStatement;
use super::create_bulk_create_stored_procedure_statement_text_renderer::CreateBulkCreateStoredProcedureStatementTextRenderer;
use super::create_bulk_update_stored_procedure_statement::CreateBulkUpdateStoredProcedureStatement;
use super::create_bulk_update_stored_procedure_statement_text_renderer::CreateBulkUpdateStoredProcedureStatementTextRenderer;
use super::create_bulk_delete_stored_procedure_statement::CreateBulkDeleteStoredProcedureStatement;
use super::create_bulk_delete_stored_procedure_statement_text_renderer::CreateBulkDeleteStoredProcedureStatementTextRenderer;
use super::drop_table_statement::DropTableStatement;
use super::drop_table_statement_text_renderer::DropTableStatementTextRenderer;
use super::drop_trigger_statement::DropTriggerStatement;
use super::drop_trigger_statement_text_renderer::DropTriggerStatementTextRenderer;
use super::identity_insert_statement::IdentityInsertStatement;
use super::identity_insert_statement_text_renderer::IdentityInsertStatementTextRenderer;
use super::delete_statement::DeleteStatement;
use super::delete_statement_text_renderer::DeleteStatementTextRenderer;
use super::execute_stored_procedure_statement::ExecuteStoredProcedureStatement;
use super::execute_stored_procedure_statement_text_renderer::ExecuteStoredProcedureStatementTextRenderer;
use super::insert_statement::InsertStatement;
use super::insert_statement_text_renderer::InsertStatementTextRenderer;
use super::return_statement::ReturnStatement;
use super::return_statement_text_renderer::ReturnStatementTextRenderer;
use super::select_inserted_id_statement::SelectInsertedIdStatement;
use super::select_inserted_id_statement_text_renderer::SelectInsertedIdStatementTextRenderer;
use super::select_statement_text_renderer::SelectStatementTextRenderer;
use super::statement_text_renderer::StatementTextRenderer;
use super::update_statement::UpdateStatement;
use super::update_statement_text_renderer::UpdateStatementTextRenderer;

pub trait StatementVisitor: Send + Sync {
    fn visit_select(&self, statement: &SelectStatement, text: &StatementTextRenderer) -> String {
        SelectStatementTextRenderer::new(text).render(statement)
    }

    fn visit_insert(&self, statement: &InsertStatement, _text: &StatementTextRenderer) -> String {
        InsertStatementTextRenderer.render(statement)
    }

    fn visit_update(&self, statement: &UpdateStatement, text: &StatementTextRenderer) -> String {
        UpdateStatementTextRenderer::new(text).render(statement)
    }

    fn visit_delete(&self, statement: &DeleteStatement, text: &StatementTextRenderer) -> String {
        DeleteStatementTextRenderer::new(text).render(statement)
    }

    fn visit_create_table(
        &self,
        statement: &CreateTableStatement,
        _text: &StatementTextRenderer,
    ) -> String {
        create_table_statement_text_renderer::render(statement)
    }

    fn visit_create_index(
        &self,
        statement: &CreateIndexStatement,
        _text: &StatementTextRenderer,
    ) -> String {
        CreateIndexStatementTextRenderer.render(statement)
    }

    fn visit_execute_stored_procedure(
        &self,
        statement: &ExecuteStoredProcedureStatement,
        _text: &StatementTextRenderer,
    ) -> String {
        ExecuteStoredProcedureStatementTextRenderer.render(statement)
    }

    fn visit_return(&self, statement: &ReturnStatement, _text: &StatementTextRenderer) -> String {
        ReturnStatementTextRenderer.render(statement)
    }

    fn visit_select_inserted_id(
        &self,
        statement: &SelectInsertedIdStatement,
        _text: &StatementTextRenderer,
    ) -> String {
        SelectInsertedIdStatementTextRenderer.render(statement)
    }

    fn visit_bulk_insert(
        &self,
        statement: &BulkInsertStatement,
        _text: &StatementTextRenderer,
    ) -> String {
        BulkInsertStatementTextRenderer.render(statement)
    }

    fn visit_bulk_update(
        &self,
        statement: &BulkUpdateStatement,
        _text: &StatementTextRenderer,
    ) -> String {
        BulkUpdateStatementTextRenderer.render(statement)
    }

    fn visit_bulk_delete(
        &self,
        statement: &BulkDeleteStatement,
        _text: &StatementTextRenderer,
    ) -> String {
        BulkDeleteStatementTextRenderer.render(statement)
    }

    fn visit_drop_table(
        &self,
        statement: &DropTableStatement,
        _text: &StatementTextRenderer,
    ) -> String {
        DropTableStatementTextRenderer.render(statement)
    }

    fn visit_alter_table(
        &self,
        statement: &AlterTableStatement,
        _text: &StatementTextRenderer,
    ) -> String {
        super::alter_table_statement_text_renderer::render(statement)
    }

    fn visit_drop_index(
        &self,
        statement: &DropIndexStatement,
        _text: &StatementTextRenderer,
    ) -> String {
        DropIndexStatementTextRenderer.render(statement)
    }

    fn visit_drop_trigger(
        &self,
        statement: &DropTriggerStatement,
        _text: &StatementTextRenderer,
    ) -> String {
        DropTriggerStatementTextRenderer.render(statement)
    }

    fn visit_create_trigger(
        &self,
        statement: &CreateTriggerStatement,
        _text: &StatementTextRenderer,
    ) -> String {
        CreateTriggerStatementTextRenderer.render(statement)
    }

    fn visit_identity_insert(
        &self,
        statement: &IdentityInsertStatement,
        _text: &StatementTextRenderer,
    ) -> String {
        IdentityInsertStatementTextRenderer.render(statement)
    }

    fn visit_drop_routine(
        &self,
        statement: &DropRoutineStatement,
        _text: &StatementTextRenderer,
    ) -> String {
        DropRoutineStatementTextRenderer.render(statement)
    }

    fn visit_create_create_stored_procedure(
        &self,
        statement: &CreateCreateStoredProcedureStatement,
        _text: &StatementTextRenderer,
    ) -> String {
        CreateCreateStoredProcedureStatementTextRenderer.render(statement)
    }
    fn visit_create_read_stored_procedure(
        &self,
        statement: &CreateReadStoredProcedureStatement,
        _text: &StatementTextRenderer,
    ) -> String {
        CreateReadStoredProcedureStatementTextRenderer.render(statement)
    }
    fn visit_create_update_stored_procedure(
        &self,
        statement: &CreateUpdateStoredProcedureStatement,
        _text: &StatementTextRenderer,
    ) -> String {
        CreateUpdateStoredProcedureStatementTextRenderer.render(statement)
    }
    fn visit_create_delete_stored_procedure(
        &self,
        statement: &CreateDeleteStoredProcedureStatement,
        _text: &StatementTextRenderer,
    ) -> String {
        CreateDeleteStoredProcedureStatementTextRenderer.render(statement)
    }
    fn visit_create_bulk_create_stored_procedure(
        &self,
        statement: &CreateBulkCreateStoredProcedureStatement,
        _text: &StatementTextRenderer,
    ) -> String {
        CreateBulkCreateStoredProcedureStatementTextRenderer.render(statement)
    }
    fn visit_create_bulk_update_stored_procedure(
        &self,
        statement: &CreateBulkUpdateStoredProcedureStatement,
        _text: &StatementTextRenderer,
    ) -> String {
        CreateBulkUpdateStoredProcedureStatementTextRenderer.render(statement)
    }
    fn visit_create_bulk_delete_stored_procedure(
        &self,
        statement: &CreateBulkDeleteStoredProcedureStatement,
        _text: &StatementTextRenderer,
    ) -> String {
        CreateBulkDeleteStoredProcedureStatementTextRenderer.render(statement)
    }
}

pub struct StatementRenderer;

impl StatementVisitor for StatementRenderer {}