diff options
| author | HampusM <hampus@hampusmat.com> | 2026-10-10 15:20:03 +0200 |
|---|---|---|
| committer | HampusM <hampus@hampusmat.com> | 2026-10-10 15:20:03 +0200 |
| commit | 168af2d80efca939c8cab30b33d820a793292361 (patch) | |
| tree | 0df86c2b79a31c3ff372eed7d2ad8a22ea8d6aed /engine/src/asset.rs | |
| parent | 0d9cc1b9ad274029c9589c5d0c6c2ac0cffe5ecc (diff) | |
refactor(engine): simplify asset::ImportWorkMessage::Store
Diffstat (limited to 'engine/src/asset.rs')
| -rw-r--r-- | engine/src/asset.rs | 30 |
1 files changed, 9 insertions, 21 deletions
diff --git a/engine/src/asset.rs b/engine/src/asset.rs index 66efe35..34f7a85 100644 --- a/engine/src/asset.rs +++ b/engine/src/asset.rs @@ -670,15 +670,10 @@ impl Submitter<'_> }; let _ = self.import_work_msg_sender.send(ImportWorkMessage::Store { - do_store: |assets, label, boxed_asset| { - let Ok(asset) = boxed_asset.downcast::<AssetT>() else { - unreachable!(); - }; - - assets.store_with_label::<AssetT>(label.as_label(), *asset); - }, + do_store: Box::new(move |assets, label| { + assets.store_with_label::<AssetT>(label.as_label(), asset); + }), label, - asset: Box::new(asset), }); } @@ -692,15 +687,10 @@ impl Submitter<'_> }; let _ = self.import_work_msg_sender.send(ImportWorkMessage::Store { - do_store: |assets, label, boxed_asset| { - let Ok(asset) = boxed_asset.downcast::<AssetT>() else { - unreachable!(); - }; - - assets.store_with_label::<AssetT>(label.as_label(), *asset); - }, + do_store: Box::new(move |assets, label| { + assets.store_with_label::<AssetT>(label.as_label(), asset); + }), label, - asset: Box::new(asset), }); } } @@ -928,21 +918,19 @@ fn add_received_assets(mut assets: Single<Assets>, mut events: Single<Events>) while let Ok(import_work_msg) = assets.import_work_msg_receiver.try_recv() { match import_work_msg { - ImportWorkMessage::Store { do_store, label, asset } => { - do_store(assets, label, asset); + ImportWorkMessage::Store { do_store, label } => { + do_store(assets, label); } } } } -#[derive(Debug)] enum ImportWorkMessage { Store { - do_store: fn(&mut Assets, LabelOwned, Box<dyn Any + Send + Sync>), + do_store: Box<dyn FnOnce(&mut Assets, LabelOwned) + Send>, label: LabelOwned, - asset: Box<dyn Any + Send + Sync>, }, } |
