datasources 0.1.5

Async datasource interfaces, middleware, registry, and test doubles
Documentation
use super::delete_statement::DeleteStatement;
use super::statement_text_renderer::StatementTextRenderer;

pub struct DeleteStatementTextRenderer<'a> {
    text: &'a StatementTextRenderer,
}

impl<'a> DeleteStatementTextRenderer<'a> {
    pub fn new(text: &'a StatementTextRenderer) -> Self {
        Self { text }
    }

    pub fn render(&self, statement: &DeleteStatement) -> String {
        match statement.where_clause() {
            None => format!("DELETE FROM {}", statement.table()),
            Some(predicate) => format!(
                "DELETE FROM {} WHERE {}",
                statement.table(),
                self.text.render_where(predicate)
            ),
        }
    }
}