diff options
| author | HampusM <hampus@hampusmat.com> | 2026-09-27 20:28:24 +0200 |
|---|---|---|
| committer | HampusM <hampus@hampusmat.com> | 2026-09-27 20:46:16 +0200 |
| commit | ee6e010611433f0aad53e3c99571b8a8c6ca13f4 (patch) | |
| tree | 06ff656f764114361ae07f42d4be208d42d5c1c1 /engine/src/model/asset.rs | |
| parent | 749303f2bab1b2b374f7b837cc75acf65067699e (diff) | |
refactor(engine): make asset importers per asset type
Diffstat (limited to 'engine/src/model/asset.rs')
| -rw-r--r-- | engine/src/model/asset.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/engine/src/model/asset.rs b/engine/src/model/asset.rs index ff5eddf..af3e1b2 100644 --- a/engine/src/model/asset.rs +++ b/engine/src/model/asset.rs @@ -42,15 +42,19 @@ impl Default for Settings pub fn add_importers(assets: &mut Assets) { - assets.set_importer(["obj"], import_wavefront_obj_asset); + assets.set_importer::<Spec, Settings, Error>(import); } -fn import_wavefront_obj_asset( +fn import( asset_submitter: &mut AssetSubmitter<'_>, path: &Path, settings: Option<&Settings>, ) -> Result<(), Error> { + if path.extension().is_none_or(|ext| ext != "obj") { + return Err(Error::UnsupportedFileType); + } + let settings = match settings { Some(settings) => settings, None => &Settings::default(), @@ -107,6 +111,9 @@ fn import_wavefront_obj_asset( #[derive(Debug, thiserror::Error)] enum Error { + #[error("File type is unsupported")] + UnsupportedFileType, + #[error("Invalid path '{}'", .0.display())] InvalidPath(PathBuf), |
