@@ -170,34 +170,29 @@ impl AssetIo for FileAssetIo {
170
170
) ) ]
171
171
pub fn filesystem_watcher_system ( asset_server : Res < AssetServer > ) {
172
172
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
+ } ;
179
176
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 {
188
181
kind : notify:: event:: EventKind :: Modify ( _) ,
189
182
paths,
190
183
..
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 ) ;
200
194
}
201
195
}
196
+ changed. extend ( paths) ;
202
197
}
203
198
}
0 commit comments