From bd5e21fce7dd87074b356387229ef4a5256de8d9 Mon Sep 17 00:00:00 2001 From: prplV Date: Wed, 28 May 2025 14:50:43 +0300 Subject: [PATCH] file check bug fixed --- noxis-rs/src/utils/files.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/noxis-rs/src/utils/files.rs b/noxis-rs/src/utils/files.rs index da87b0f..2cfa44f 100644 --- a/noxis-rs/src/utils/files.rs +++ b/noxis-rs/src/utils/files.rs @@ -102,14 +102,16 @@ } match &mut self.watcher { Some(notify) => { - let mut buffer = [0; 1024]; - if let Ok(mut notif_events) = notify.read_events(&mut buffer) { - // notif_events.into_iter().for_each(|mask| {dbg!(&mask.mask);}); - // todo!(); - if let (recreate_watcher, true) = ( - notif_events.any(|mask| mask.mask == EventMask::DELETE_SELF), - notif_events.any(|mask| mask.mask == EventMask::MODIFY) - ) { + let mut buffer = [0; 128]; + if let Ok(notif_events) = notify.read_events(&mut buffer) { + let (need_to_recreate, was_modifired) = notif_events.fold((false, false), |(a, b), mask| { + ( + a || mask.mask == EventMask::DELETE_SELF, + b || mask.mask == EventMask::MODIFY, + ) + }); + + if let (recreate_watcher, true) = (need_to_recreate, was_modifired) { warn!("File {} ({}) was changed", self.name, &self.path); if recreate_watcher { self.watcher = match create_watcher(&self.name, &self.path) {