1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
use std::fmt; pub trait SqlAdapter: fmt::Debug { fn placeholder(&self, idx: u8) -> String; } #[derive(Copy, Clone, Debug)] pub struct PostgreSqlAdapter; impl SqlAdapter for PostgreSqlAdapter { fn placeholder(&self, idx: u8) -> String { format!("${}", idx) } } #[derive(Copy, Clone, Debug)] pub struct MysqlAdapter; impl SqlAdapter for MysqlAdapter { fn placeholder(&self, _: u8) -> String { "?".to_owned() } }