Skip to content

Commit 6177704

Browse files
committed
Refactor filesystem_watcher_system with let-else
1 parent f3a23fd commit 6177704

File tree

1 file changed

+18
-23
lines changed

1 file changed

+18
-23
lines changed

crates/bevy_asset/src/io/file_asset_io.rs

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -170,34 +170,29 @@ impl AssetIo for FileAssetIo {
170170
))]
171171
pub fn filesystem_watcher_system(asset_server: Res<AssetServer>) {
172172
let mut changed = HashSet::default();
173-
let asset_io =
174-
if let Some(asset_io) = asset_server.server.asset_io.downcast_ref::<FileAssetIo>() {
175-
asset_io
176-
} else {
177-
return;
178-
};
173+
let Some(asset_io) = asset_server.server.asset_io.downcast_ref::<FileAssetIo>() else {
174+
return;
175+
};
179176
let watcher = asset_io.filesystem_watcher.read();
180-
if let Some(ref watcher) = *watcher {
181-
loop {
182-
let event = match watcher.receiver.try_recv() {
183-
Ok(result) => result.unwrap(),
184-
Err(TryRecvError::Empty) => break,
185-
Err(TryRecvError::Disconnected) => panic!("FilesystemWatcher disconnected."),
186-
};
187-
if let notify::event::Event {
177+
let Some(ref watcher) = *watcher else { return; };
178+
loop {
179+
let paths = match watcher.receiver.try_recv() {
180+
Ok(Ok(notify::event::Event {
188181
kind: notify::event::EventKind::Modify(_),
189182
paths,
190183
..
191-
} = event
192-
{
193-
for path in &paths {
194-
if !changed.contains(path) {
195-
let relative_path = path.strip_prefix(&asset_io.root_path).unwrap();
196-
let _ = asset_server.load_untracked(relative_path.into(), true);
197-
}
198-
}
199-
changed.extend(paths);
184+
})) => paths,
185+
Ok(Ok(_)) => continue,
186+
Ok(Err(err)) => panic!("FilesystemWatcher returned an error: {err}"),
187+
Err(TryRecvError::Empty) => break,
188+
Err(TryRecvError::Disconnected) => panic!("FilesystemWatcher disconnected."),
189+
};
190+
for path in &paths {
191+
if !changed.contains(path) {
192+
let relative_path = path.strip_prefix(&asset_io.root_path).unwrap();
193+
let _ = asset_server.load_untracked(relative_path.into(), true);
200194
}
201195
}
196+
changed.extend(paths);
202197
}
203198
}

0 commit comments

Comments
 (0)