From c24a01bfecdf1a8d6928998e53af317d3798c82d Mon Sep 17 00:00:00 2001 From: sappho Date: Wed, 8 Nov 2023 15:35:41 +0100 Subject: [PATCH 1/3] ReadAssetBytesError::Io exposes failing file path --- crates/bevy_asset/src/loader.rs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/crates/bevy_asset/src/loader.rs b/crates/bevy_asset/src/loader.rs index 3a5bbc7d032aa..72481b8914445 100644 --- a/crates/bevy_asset/src/loader.rs +++ b/crates/bevy_asset/src/loader.rs @@ -16,7 +16,7 @@ use ron::error::SpannedError; use serde::{Deserialize, Serialize}; use std::{ any::{Any, TypeId}, - path::Path, + path::{Path, PathBuf}, }; use thiserror::Error; @@ -438,7 +438,13 @@ impl<'a> LoadContext<'a> { Default::default() }; let mut bytes = Vec::new(); - reader.read_to_end(&mut bytes).await?; + reader + .read_to_end(&mut bytes) + .await + .map_err(|source| ReadAssetBytesError::Io { + path: path.path().to_path_buf(), + source, + })?; self.loader_dependencies.insert(path.clone_owned(), hash); Ok(bytes) } @@ -553,8 +559,12 @@ pub enum ReadAssetBytesError { #[error(transparent)] MissingProcessedAssetReaderError(#[from] MissingProcessedAssetReaderError), /// Encountered an I/O error while loading an asset. - #[error("Encountered an io error while loading asset: {0}")] - Io(#[from] std::io::Error), + #[error("Encountered an io error while loading asset {path}: {source}")] + Io { + path: PathBuf, + #[source] + source: std::io::Error, + }, #[error("The LoadContext for this read_asset_bytes call requires hash metadata, but it was not provided. This is likely an internal implementation error.")] MissingAssetHash, } From 31a1148dd2d827304dd7ed06e836cb4cd7b2766b Mon Sep 17 00:00:00 2001 From: orph3usLyre <101505114+orph3usLyre@users.noreply.github.com> Date: Fri, 10 Nov 2023 08:45:20 +0100 Subject: [PATCH 2/3] wrap path in quotes Co-authored-by: Alice Cecile --- crates/bevy_asset/src/loader.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/bevy_asset/src/loader.rs b/crates/bevy_asset/src/loader.rs index 72481b8914445..9d9babf6160f7 100644 --- a/crates/bevy_asset/src/loader.rs +++ b/crates/bevy_asset/src/loader.rs @@ -559,7 +559,7 @@ pub enum ReadAssetBytesError { #[error(transparent)] MissingProcessedAssetReaderError(#[from] MissingProcessedAssetReaderError), /// Encountered an I/O error while loading an asset. - #[error("Encountered an io error while loading asset {path}: {source}")] + #[error("Encountered an io error while loading asset at "{path}": {source}")] Io { path: PathBuf, #[source] From ebda372a6854c654a8763f39d97904fe55975e46 Mon Sep 17 00:00:00 2001 From: sappho Date: Thu, 16 Nov 2023 09:21:12 +0100 Subject: [PATCH 3/3] wrap path in backticks --- crates/bevy_asset/src/loader.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/bevy_asset/src/loader.rs b/crates/bevy_asset/src/loader.rs index 9d9babf6160f7..3963dc2f40067 100644 --- a/crates/bevy_asset/src/loader.rs +++ b/crates/bevy_asset/src/loader.rs @@ -559,7 +559,7 @@ pub enum ReadAssetBytesError { #[error(transparent)] MissingProcessedAssetReaderError(#[from] MissingProcessedAssetReaderError), /// Encountered an I/O error while loading an asset. - #[error("Encountered an io error while loading asset at "{path}": {source}")] + #[error("Encountered an io error while loading asset at `{path}`: {source}")] Io { path: PathBuf, #[source]