aboutsummaryrefslogtreecommitdiff
path: root/src/db/backend.rs
blob: 5f35dd917ae373875c648020f1e8b2b49e801cb8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use barrel::backend::SqlGenerator;
pub use diesel::connection::Connection;

pub trait Connectable {
    type Connection: Connection;
    type SqlGenerator: SqlGenerator;
    fn connect(&self) -> diesel::ConnectionResult<Self::Connection>;
}

pub struct Sqlite {
    pub db_file: &'static str,
}

impl Connectable for Sqlite {
    type Connection = diesel::sqlite::SqliteConnection;
    type SqlGenerator = barrel::backend::Sqlite;

    fn connect(&self) -> diesel::ConnectionResult<Self::Connection> {
        Self::Connection::establish(self.db_file)
    }
}