datasources-sqlserver 0.1.42

sqlserver datasource stub
Documentation
use datasources::{Column, CreateTableStatementTextRenderer};

pub struct SqlServerCreateTableStatementRenderer;

impl CreateTableStatementTextRenderer for SqlServerCreateTableStatementRenderer {
    fn quote(&self, name: &str) -> String {
        crate::SqlServerDriver::quote(name)
    }

    fn type_name(&self, column: &Column) -> String {
        crate::SqlServerDriver::native_type(column)
    }

    fn column_default(&self, column: &Column) -> String {
        match &column.default {
            None => String::new(),
            Some(value) if value.name.is_none() => {
                format!(" DEFAULT {}", crate::SqlServerDriver::native_default(column))
            }
            Some(value) => format!(
                " CONSTRAINT {} DEFAULT {}",
                self.quote(value.name.as_deref().unwrap_or("")),
                crate::SqlServerDriver::native_default(column)
            ),
        }
    }

    fn identity(&self, column: &Column) -> String {
        if column.identity {
            " IDENTITY(1,1)".into()
        } else {
            String::new()
        }
    }
}