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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -391,21 +391,6 @@ impl Page {
&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
fn load_gemini(&self, uri: Uri) {
// Use local namespaces @TODO
@ -938,6 +923,20 @@ impl Page {
// 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)
///
/// Useful as common placeholder when page title could not be detected

View file

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

View file

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

View file

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

View file

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

View file

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