zoodex/src/main.rs

40 lines
892 B
Rust

mod collection ;
mod error ;
mod persistence ;
mod ui ;
mod utility ;
use { gtk4 :: glib :: * , libadwaita :: { * , prelude :: * } } ;
use crate :: { error :: { * , ZoodexError :: * } , persistence :: * , ui :: * } ;
fn main () -> ExitCode {
let application = Application :: builder ()
. application_id ("com.kernelmaft.zoodex")
. build () ;
application . connect_activate (on_activate) ;
application . run ()
}
fn on_activate ( app : & Application ) {
let ui = UI :: new (app) ;
ui . show_window () ;
spawn_future_local ( async move {
async_unit_result_context (
async {
let collection = get_collection_from_file () . await ? ;
ui . render_collection (collection) ;
Ok (())
} ,
|error| {
match error {
CollectionFileReadError => eprintln ! ("Could not read collection file") ,
} ;
ui . close_window () ;
} ,
) . await ;
} ) ;
}