mod collection ; mod persistence ; mod ui ; mod utility ; use { gtk4 :: { gio :: spawn_blocking , glib :: * } , libadwaita :: { * , prelude :: * } , } ; use crate :: { 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 mut ui = UI :: new (app) ; let collection_handle = spawn_blocking ( || read_collection_file () . unwrap () ) ; ui . show_window () ; spawn_future_local ( async move { let collection = collection_handle . await . unwrap () ; ui . render_collection (collection) ; } ) ; }