Add async_unit_result_context, rename read_collection_file

This commit is contained in:
Reinout Meliesie 2024-11-30 16:00:44 +01:00
parent 5055583487
commit 1e9ff1057a
Signed by: zedfrigg
GPG key ID: 3AFCC06481308BC6
3 changed files with 25 additions and 12 deletions

View file

@ -29,3 +29,13 @@ pub async fn async_result_context <
Err (error) => on_failure (error) ,
} ;
}
pub async fn async_unit_result_context <
AsyncFunction : Future < Output = Result <()> > ,
FailureHandler : Fn (ZoodexError) ,
> (
function : AsyncFunction ,
on_failure : FailureHandler ,
) {
async_result_context ( function , |_| () , on_failure ) . await ;
}

View file

@ -26,17 +26,20 @@ fn on_activate ( app : & Application ) {
ui . show_window () ;
spawn_future_local ( async move {
async_result_context ( async {
let collection = spawn_blocking ( || read_collection_file () )
. await ? ? ;
async_unit_result_context (
async {
let collection = spawn_blocking ( ||
get_collection_from_file () ) . await ? ? ;
ui . render_collection (collection) ;
Ok (())
} , |_| () , |error| {
} ,
|error| {
match error {
CollectionFileError => eprintln ! ("Could not open collection file") ,
} ;
ui . close_window () ;
} ) . await ;
} ,
) . await ;
} ) ;
}

View file

@ -8,7 +8,7 @@ use crate :: { collection :: * , error :: { * , ZoodexError :: * } } ;
pub fn read_collection_file () -> Result <Collection> {
pub fn get_collection_from_file () -> Result <Collection> {
let sqlite_connection = Connection :: open ("zoodex.sqlite") ? ;
let mut films_query = sqlite_connection