Use futures crate to await collection rendering concurrently
This commit is contained in:
parent
85b0fc2f21
commit
e633000de5
3 changed files with 33 additions and 3 deletions
27
Cargo.lock
generated
27
Cargo.lock
generated
|
@ -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",
|
||||
]
|
||||
|
|
|
@ -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" ] }
|
||||
|
|
|
@ -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 ) ,
|
||||
) ;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue