remove lossy conversions, fix linting and doc tests, add more tests for Path replacement methods

This commit is contained in:
lielfr 2025-05-10 01:15:48 +03:00
parent ec47b4cdcd
commit b1733fdbfa
3 changed files with 37 additions and 5 deletions

View File

@ -3,7 +3,7 @@ use crate::io::{
memory::Dir,
AssetSourceEvent, AssetWatcher,
};
use alloc::{boxed::Box, sync::Arc, vec::Vec};
use alloc::{boxed::Box, string::ToString, sync::Arc, vec::Vec};
use bevy_platform::collections::HashMap;
use core::time::Duration;
use notify_debouncer_full::{notify::RecommendedWatcher, Debouncer, RecommendedCache};
@ -40,7 +40,9 @@ impl EmbeddedWatcher {
last_event: None,
};
let watcher = new_asset_event_debouncer(
root.to_string_lossy().to_string(),
root.to_str()
.expect("non unicode characters found in path")
.to_string(),
debounce_wait_time,
handler,
)

View File

@ -545,7 +545,9 @@ impl AssetSource {
if path.exists() {
Some(Box::new(
super::file::FileWatcher::new(
path.to_string_lossy().to_string(),
path.to_str()
.expect("non unicode characters found in path")
.to_string(),
sender,
file_debounce_wait_time,
)

View File

@ -638,7 +638,11 @@ impl<'a> From<&'a Path> for AssetPath<'a> {
fn from(path: &'a Path) -> Self {
Self {
source: AssetSourceId::Default,
path: CowArc::from(path.to_string_lossy().to_string()),
path: CowArc::from(
path.to_str()
.expect("non unicode characters found in file path")
.to_string(),
),
label: None,
}
}
@ -649,7 +653,11 @@ impl From<PathBuf> for AssetPath<'static> {
fn from(path: PathBuf) -> Self {
Self {
source: AssetSourceId::Default,
path: CowArc::from(path.to_string_lossy().to_string()),
path: CowArc::from(
path.to_str()
.expect("non unicode characters found in file path")
.to_string(),
),
label: None,
}
}
@ -1078,4 +1086,24 @@ mod tests {
assert_eq!(AssetPath::from("a/b/"), AssetPath::from("a/b"));
assert_eq!(AssetPath::from("a/b/#c"), AssetPath::from("a/b#c"));
}
#[test]
fn test_path_components() {
use alloc::vec;
use alloc::vec::Vec;
assert_eq!(
AssetPath::from("a/b/c")
.path_components()
.collect::<Vec<_>>(),
vec!["a", "b", "c"]
);
assert_eq!(
AssetPath::from("a/b/c/../d")
.path_components()
.collect::<Vec<_>>(),
vec!["a", "b", "c", "..", "d"]
);
}
}