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()
    }
}