use rusqlite::{Connection}; use std; use auth::HashedPassword; type Result = std::result::Result; fn is_initialized(conn: &mut Connection) -> Result { Ok(false) } pub fn init(conn: &mut Connection) -> Result<()> { if !is_initialized(conn)? { info!("Initializing db..."); conn.execute_batch(" BEGIN; CREATE TABLE IF NOT EXISTS users (username TEXT PRIMARY KEY, salt TEXT, passwd TEXT); COMMIT; ").unwrap(); } Ok(()) } pub fn insert_user(conn: &mut Connection, username: &str, password: &HashedPassword) -> Result<()> { conn.execute("INSERT INTO users (username, salt, passwd) VALUES (?1, ?2, ?3)", &[&username, &password.salt, &password.enc]).unwrap(); Ok(()) }