refactor: minor change on source structure

This commit is contained in:
2026-07-13 23:40:37 +02:00
parent 9e1f6c5a9f
commit 35b41b8d8b
2 changed files with 11 additions and 7 deletions

View File

@@ -35,7 +35,9 @@ fn main() {
// TODO: CREATE FILE.db IF DOES NOT EXISTS
// TODO: CREATE TABLE IF DOES NOT EXISTS
let connection = Connection::open(&config.database_path).unwrap();
let word_source = FileDatabase {};
let word_source = FileDatabase {
connection: &connection,
};
// NOTE: testing init
// connection
@@ -73,7 +75,7 @@ fn main() {
)
.unwrap();
if let Ok(w_list) = word_source.find_by_word("test", &connection) {
if let Ok(w_list) = word_source.find_by_word("test") {
println!("Words! {:?}", w_list);
}

View File

@@ -3,10 +3,12 @@ use rusqlite::Connection;
#[derive(Clone, Debug)]
pub struct Word(String, String);
pub struct FileDatabase {}
pub struct FileDatabase<'a> {
pub connection: &'a Connection,
}
pub trait WordSource {
fn find_by_word(&self, word: &str, connection: &Connection) -> Result<Vec<Word>, ()>;
fn find_by_word(&self, word: &str) -> Result<Vec<Word>, ()>;
fn insert_word(&mut self, word: Word) -> Result<(), ()>;
fn remove_word(&self, word: &str) -> Result<(), ()>;
fn edit_word(&mut self, word: Word) -> Result<(), ()>;
@@ -20,9 +22,9 @@ fn fuzzy_compare(a: &str, b: &str) -> bool {
false
}
impl WordSource for FileDatabase {
fn find_by_word(&self, word: &str, connection: &Connection) -> Result<Vec<Word>, ()> {
let statement = connection.prepare("select key, description from word");
impl<'a> WordSource for FileDatabase<'a> {
fn find_by_word(&self, word: &str) -> Result<Vec<Word>, ()> {
let statement = self.connection.prepare("select key, description from word");
let mut word_list: Vec<Word> = vec![];
if let Ok(mut query) = statement {