move migration api out of struct implementation

This commit is contained in:
yggverse 2024-11-03 17:05:32 +02:00
parent 06f43f34f3
commit 39ee50c4ba
12 changed files with 173 additions and 177 deletions

View File

@ -233,7 +233,7 @@ impl App {
}; };
// Begin migration // Begin migration
match App::migrate(&transaction) { match migrate(&transaction) {
Ok(_) => { Ok(_) => {
// Confirm changes // Confirm changes
match transaction.commit() { match transaction.commit() {
@ -248,6 +248,7 @@ impl App {
// Start application // Start application
self.gobject.run() self.gobject.run()
} }
}
// Tools // Tools
fn migrate(tx: &Transaction) -> Result<(), String> { fn migrate(tx: &Transaction) -> Result<(), String> {
@ -257,9 +258,8 @@ impl App {
} }
// Delegate migration to childs // Delegate migration to childs
Browser::migrate(&tx)?; browser::migrate(&tx)?;
// Success // Success
Ok(()) Ok(())
} }
}

View File

@ -250,6 +250,7 @@ impl Browser {
pub fn gobject(&self) -> &ApplicationWindow { pub fn gobject(&self) -> &ApplicationWindow {
&self.widget.gobject() &self.widget.gobject()
} }
}
// Tools // Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> { pub fn migrate(tx: &Transaction) -> Result<(), String> {
@ -260,11 +261,10 @@ impl Browser {
// Delegate migration to childs // Delegate migration to childs
/* @TODO /* @TODO
Header::migrate(&tx)?; */ header::migrate(&tx)?; */
Window::migrate(&tx)?; window::migrate(&tx)?;
Widget::migrate(&tx)?; widget::migrate(&tx)?;
// Success // Success
Ok(()) Ok(())
} }
}

View File

@ -100,6 +100,7 @@ impl Widget {
pub fn gobject(&self) -> &ApplicationWindow { pub fn gobject(&self) -> &ApplicationWindow {
&self.gobject &self.gobject
} }
}
// Tools // Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> { pub fn migrate(tx: &Transaction) -> Result<(), String> {
@ -114,4 +115,3 @@ impl Widget {
// Success // Success
Ok(()) Ok(())
} }
}

View File

@ -168,6 +168,7 @@ impl Window {
pub fn gobject(&self) -> &Box { pub fn gobject(&self) -> &Box {
&self.widget.gobject() &self.widget.gobject()
} }
}
// Tools // Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> { pub fn migrate(tx: &Transaction) -> Result<(), String> {
@ -177,9 +178,8 @@ impl Window {
} }
// Delegate migration to childs // Delegate migration to childs
Tab::migrate(&tx)?; tab::migrate(&tx)?;
// Success // Success
Ok(()) Ok(())
} }
}

View File

@ -335,6 +335,7 @@ impl Tab {
pub fn gobject(&self) -> &TabView { pub fn gobject(&self) -> &TabView {
self.widget.gobject() self.widget.gobject()
} }
}
// Tools // Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> { pub fn migrate(tx: &Transaction) -> Result<(), String> {
@ -344,12 +345,8 @@ impl Tab {
} }
// Delegate migration to childs // Delegate migration to childs
Item::migrate(&tx)?; item::migrate(&tx)?;
/* @TODO
Page::migrate(&tx)?; */
// Success // Success
Ok(()) Ok(())
} }
}

View File

@ -219,6 +219,7 @@ impl Item {
pub fn gobject(&self) -> &TabPage { pub fn gobject(&self) -> &TabPage {
&self.widget.gobject() &self.widget.gobject()
} }
}
// Tools // Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> { pub fn migrate(tx: &Transaction) -> Result<(), String> {
@ -228,10 +229,9 @@ impl Item {
} }
// Delegate migration to childs // Delegate migration to childs
Page::migrate(&tx)?; page::migrate(&tx)?;
Widget::migrate(&tx)?; widget::migrate(&tx)?;
// Success // Success
Ok(()) Ok(())
} }
}

View File

@ -391,21 +391,6 @@ impl Page {
&self.widget.gobject() &self.widget.gobject()
} }
// Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> {
// Migrate self components
if let Err(e) = Database::init(tx) {
return Err(e.to_string());
}
// Delegate migration to childs
Meta::migrate(tx)?;
Navigation::migrate(tx)?;
// Success
Ok(())
}
// Private helpers @TODO move outside // Private helpers @TODO move outside
fn load_gemini(&self, uri: Uri) { fn load_gemini(&self, uri: Uri) {
// Use local namespaces @TODO // Use local namespaces @TODO
@ -938,6 +923,20 @@ impl Page {
// Tools // Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> {
// Migrate self components
if let Err(e) = Database::init(tx) {
return Err(e.to_string());
}
// Delegate migration to childs
meta::migrate(tx)?;
navigation::migrate(tx)?;
// Success
Ok(())
}
/// Helper function, extract readable title from [Uri](https://docs.gtk.org/glib/struct.Uri.html) /// Helper function, extract readable title from [Uri](https://docs.gtk.org/glib/struct.Uri.html)
/// ///
/// Useful as common placeholder when page title could not be detected /// Useful as common placeholder when page title could not be detected

View File

@ -178,6 +178,7 @@ impl Meta {
Ok(()) Ok(())
} }
}
// Tools // Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> { pub fn migrate(tx: &Transaction) -> Result<(), String> {
@ -192,4 +193,3 @@ impl Meta {
// Success // Success
Ok(()) Ok(())
} }
}

View File

@ -168,6 +168,7 @@ impl Navigation {
pub fn request_text(&self) -> GString { pub fn request_text(&self) -> GString {
self.request.text() self.request.text()
} }
}
// Tools // Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> { pub fn migrate(tx: &Transaction) -> Result<(), String> {
@ -177,9 +178,8 @@ impl Navigation {
} }
// Delegate migration to childs // Delegate migration to childs
Request::migrate(tx)?; request::migrate(tx)?;
// Success // Success
Ok(()) Ok(())
} }
}

View File

@ -117,6 +117,7 @@ impl Request {
_ => None, _ => None,
} }
} }
}
// Tools // Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> { pub fn migrate(tx: &Transaction) -> Result<(), String> {
@ -126,9 +127,8 @@ impl Request {
} }
// Delegate migration to childs // Delegate migration to childs
Widget::migrate(tx)?; widget::migrate(tx)?;
// Success // Success
Ok(()) Ok(())
} }
}

View File

@ -221,6 +221,7 @@ impl Widget {
pub fn text(&self) -> GString { pub fn text(&self) -> GString {
self.gobject.text() self.gobject.text()
} }
}
// Tools // Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> { pub fn migrate(tx: &Transaction) -> Result<(), String> {
@ -235,4 +236,3 @@ impl Widget {
// Success // Success
Ok(()) Ok(())
} }
}

View File

@ -124,6 +124,7 @@ impl Widget {
pub fn gobject(&self) -> &TabPage { pub fn gobject(&self) -> &TabPage {
&self.gobject &self.gobject
} }
}
// Tools // Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> { pub fn migrate(tx: &Transaction) -> Result<(), String> {
@ -138,4 +139,3 @@ impl Widget {
// Success // Success
Ok(()) Ok(())
} }
}