From 998e3170fb5041acd3047786857ad6a3384f7ef4 Mon Sep 17 00:00:00 2001 From: yggverse Date: Sun, 22 Sep 2024 12:30:32 +0300 Subject: [PATCH] use arc for db connection --- src/browser/mod.rs | 6 +++--- src/main.rs | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/browser/mod.rs b/src/browser/mod.rs index 4b4f0049..73b279eb 100644 --- a/src/browser/mod.rs +++ b/src/browser/mod.rs @@ -9,13 +9,13 @@ use gtk::{ Application, ApplicationWindow, }; -use sqlite::Connection; pub struct Browser { + db: Arc, pub widget: Arc, pub main: Arc, } -pub fn new(app: &Application, db: &Connection, width: i32, height: i32) -> Browser { +pub fn new(app: &Application, db: Arc, width: i32, height: i32) -> Browser { // Init components let main = Arc::new(main::new()); @@ -55,5 +55,5 @@ pub fn new(app: &Application, db: &Connection, width: i32, height: i32) -> Brows widget.add_action_entries([action_tab_append, action_debug, action_quit]); // Done - Browser { widget, main } + Browser { db, widget, main } } diff --git a/src/main.rs b/src/main.rs index 847c692d..9e4fed54 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,7 @@ mod browser; use std::fs; +use std::sync::Arc; use gtk::prelude::{ApplicationExt, ApplicationExtManual, GtkApplicationExt, GtkWindowExt}; @@ -35,12 +36,12 @@ fn main() -> glib::ExitCode { db.push("database.sqlite3"); let db = match sqlite::open(db) { - Ok(db) => db, + Ok(db) => Arc::new(db), Err(e) => panic!("Failed to connect profile database: {e}"), }; move |this| { - browser::new(&this, &db, 640, 480).widget.present(); + browser::new(&this, db.clone(), 640, 480).widget.present(); } });