Use futures crate to await collection rendering concurrently

This commit is contained in:
Reinout Meliesie 2025-02-12 10:27:29 +01:00
parent 85b0fc2f21
commit e633000de5
Signed by: zedfrigg
GPG key ID: 3AFCC06481308BC6
3 changed files with 33 additions and 3 deletions

27
Cargo.lock generated
View file

@ -120,6 +120,21 @@ dependencies = [
"rustc_version",
]
[[package]]
name = "futures"
version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876"
dependencies = [
"futures-channel",
"futures-core",
"futures-executor",
"futures-io",
"futures-sink",
"futures-task",
"futures-util",
]
[[package]]
name = "futures-channel"
version = "0.3.31"
@ -127,6 +142,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10"
dependencies = [
"futures-core",
"futures-sink",
]
[[package]]
@ -163,6 +179,12 @@ dependencies = [
"syn",
]
[[package]]
name = "futures-sink"
version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7"
[[package]]
name = "futures-task"
version = "0.3.31"
@ -175,9 +197,13 @@ version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
dependencies = [
"futures-channel",
"futures-core",
"futures-io",
"futures-macro",
"futures-sink",
"futures-task",
"memchr",
"pin-project-lite",
"pin-utils",
"slab",
@ -877,6 +903,7 @@ version = "1.0.0"
dependencies = [
"async-sqlite",
"fallible-iterator",
"futures",
"gtk4",
"libadwaita",
]

View file

@ -12,5 +12,6 @@ lto = true
[ dependencies ]
async-sqlite = { version = "0.4.0" , default-features = false }
fallible-iterator = "0.3.0" # Must match version used by async-sqlite
futures = "0.3.31"
gtk4 = { version = "0.9.5" , features = [ "v4_16" ] }
libadwaita = { version = "0.7.1" , features = [ "v1_6" ] }

View file

@ -2,6 +2,7 @@ mod collatable_container ;
mod component ;
mod utility ;
use futures :: * ;
use gtk4 :: Orientation :: * ;
use gtk4 :: prelude :: * ;
use libadwaita :: * ;
@ -49,8 +50,9 @@ impl UI {
pub fn close_window ( & self ) { self . window . close () }
pub async fn render_collection_overview ( & self , collection : CollectionOverview ) {
// TODO: Find a way to await these futures concurrently
self . films_component . set_media ( collection . films ) . await ;
self . series_component . set_media ( collection . series ) . await ;
join ! (
self . films_component . set_media ( collection . films ) ,
self . series_component . set_media ( collection . series ) ,
) ;
}
}