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,18 +248,18 @@ impl App {
// Start application
self.gobject.run()
}
}
// Tools
fn migrate(tx: &Transaction) -> Result<(), String> {
// Tools
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
Browser::migrate(&tx)?;
browser::migrate(&tx)?;
// Success
Ok(())
}
}

View File

@ -250,9 +250,10 @@ impl Browser {
pub fn gobject(&self) -> &ApplicationWindow {
&self.widget.gobject()
}
}
// Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> {
// Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> {
// Migrate self components
if let Err(e) = Database::init(&tx) {
return Err(e.to_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,9 +100,10 @@ impl Widget {
pub fn gobject(&self) -> &ApplicationWindow {
&self.gobject
}
}
// Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> {
// Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> {
// Migrate self components
if let Err(e) = Database::init(&tx) {
return Err(e.to_string());
@ -113,5 +114,4 @@ impl Widget {
// Success
Ok(())
}
}

View File

@ -168,18 +168,18 @@ impl Window {
pub fn gobject(&self) -> &Box {
&self.widget.gobject()
}
}
// Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> {
// 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
Tab::migrate(&tx)?;
tab::migrate(&tx)?;
// Success
Ok(())
}
}

View File

@ -335,21 +335,18 @@ impl Tab {
pub fn gobject(&self) -> &TabView {
self.widget.gobject()
}
}
// Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> {
// 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
Item::migrate(&tx)?;
/* @TODO
Page::migrate(&tx)?; */
item::migrate(&tx)?;
// Success
Ok(())
}
}

View File

@ -219,19 +219,19 @@ impl Item {
pub fn gobject(&self) -> &TabPage {
&self.widget.gobject()
}
}
// Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> {
// 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
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,9 +178,10 @@ impl Meta {
Ok(())
}
}
// Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> {
// Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> {
// Migrate self components
if let Err(e) = Database::init(&tx) {
return Err(e.to_string());
@ -191,5 +192,4 @@ impl Meta {
// Success
Ok(())
}
}

View File

@ -168,18 +168,18 @@ impl Navigation {
pub fn request_text(&self) -> GString {
self.request.text()
}
}
// Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> {
// 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
Request::migrate(tx)?;
request::migrate(tx)?;
// Success
Ok(())
}
}

View File

@ -117,18 +117,18 @@ impl Request {
_ => None,
}
}
}
// Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> {
// 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
Widget::migrate(tx)?;
widget::migrate(tx)?;
// Success
Ok(())
}
}

View File

@ -221,9 +221,10 @@ impl Widget {
pub fn text(&self) -> GString {
self.gobject.text()
}
}
// Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> {
// Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> {
// Migrate self components
if let Err(e) = Database::init(&tx) {
return Err(e.to_string());
@ -234,5 +235,4 @@ impl Widget {
// Success
Ok(())
}
}

View File

@ -124,9 +124,10 @@ impl Widget {
pub fn gobject(&self) -> &TabPage {
&self.gobject
}
}
// Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> {
// Tools
pub fn migrate(tx: &Transaction) -> Result<(), String> {
// Migrate self components
if let Err(e) = Database::init(&tx) {
return Err(e.to_string());
@ -137,5 +138,4 @@ impl Widget {
// Success
Ok(())
}
}