diff --git a/crates/provider/src/native.rs b/crates/provider/src/native.rs
index 5c9ba23cc431e94c2d8c27e9f91ca7344e9606bb..b7d90c05cf18ff45745eab919e18d8000301963c 100644
--- a/crates/provider/src/native.rs
+++ b/crates/provider/src/native.rs
@@ -730,27 +730,24 @@ mod tests {
 
         let node = namespace
             .spawn_node(
-                SpawnNodeOptions::new(
-                    "mynode",
-                    "./testing/dummy_node",
-                )
-                .args(vec![
-                    "-flag1",
-                    "--flag2",
-                    "--option1=value1",
-                    "-option2=value2",
-                    "--option3 value3",
-                    "-option4 value4",
-                ])
-                .env(vec![
-                    ("MY_VAR_1", "MY_VALUE_1"),
-                    ("MY_VAR_2", "MY_VALUE_2"),
-                    ("MY_VAR_3", "MY_VALUE_3"),
-                ])
-                .injected_files(vec![
-                    TransferedFile::new("/file1", "/cfg/file1"),
-                    TransferedFile::new("/file2", "/data/file2"),
-                ]),
+                SpawnNodeOptions::new("mynode", "./testing/dummy_node")
+                    .args(vec![
+                        "-flag1",
+                        "--flag2",
+                        "--option1=value1",
+                        "-option2=value2",
+                        "--option3 value3",
+                        "-option4 value4",
+                    ])
+                    .env(vec![
+                        ("MY_VAR_1", "MY_VALUE_1"),
+                        ("MY_VAR_2", "MY_VALUE_2"),
+                        ("MY_VAR_3", "MY_VALUE_3"),
+                    ])
+                    .injected_files(vec![
+                        TransferedFile::new("/file1", "/cfg/file1"),
+                        TransferedFile::new("/file2", "/data/file2"),
+                    ]),
             )
             .await
             .unwrap();
@@ -888,18 +885,12 @@ mod tests {
         let namespace = provider.create_namespace().await.unwrap();
 
         namespace
-            .spawn_node(SpawnNodeOptions::new(
-                "mynode",
-                "./testing/dummy_node",
-            ))
+            .spawn_node(SpawnNodeOptions::new("mynode", "./testing/dummy_node"))
             .await
             .unwrap();
 
         let result = namespace
-            .spawn_node(SpawnNodeOptions::new(
-                "mynode",
-                "./testing/dummy_node",
-            ))
+            .spawn_node(SpawnNodeOptions::new("mynode", "./testing/dummy_node"))
             .await;
 
         // we must match here because Arc<dyn Node + Send + Sync> doesn't implements Debug, so unwrap_err is not an option
@@ -978,17 +969,11 @@ mod tests {
 
         // spawn 2 dummy nodes to populate namespace
         namespace
-            .spawn_node(SpawnNodeOptions::new(
-                "mynode1",
-                "./testing/dummy_node",
-            ))
+            .spawn_node(SpawnNodeOptions::new("mynode1", "./testing/dummy_node"))
             .await
             .unwrap();
         namespace
-            .spawn_node(SpawnNodeOptions::new(
-                "mynode2",
-                "./testing/dummy_node",
-            ))
+            .spawn_node(SpawnNodeOptions::new("mynode2", "./testing/dummy_node"))
             .await
             .unwrap();
 
@@ -1021,10 +1006,7 @@ mod tests {
 
         // spawn dummy node
         let node = namespace
-            .spawn_node(SpawnNodeOptions::new(
-                "mynode",
-                "./testing/dummy_node",
-            ))
+            .spawn_node(SpawnNodeOptions::new("mynode", "./testing/dummy_node"))
             .await
             .unwrap();
 
@@ -1054,10 +1036,7 @@ mod tests {
 
         // spawn dummy node
         let node = namespace
-            .spawn_node(SpawnNodeOptions::new(
-                "mynode",
-                "./testing/dummy_node",
-            ))
+            .spawn_node(SpawnNodeOptions::new("mynode", "./testing/dummy_node"))
             .await
             .unwrap();
 
@@ -1095,10 +1074,7 @@ mod tests {
 
         // spawn dummy node
         let node = namespace
-            .spawn_node(SpawnNodeOptions::new(
-                "mynode",
-                "./testing/dummy_node",
-            ))
+            .spawn_node(SpawnNodeOptions::new("mynode", "./testing/dummy_node"))
             .await
             .unwrap();
 
@@ -1125,10 +1101,7 @@ mod tests {
 
         // spawn dummy node
         let node = namespace
-            .spawn_node(SpawnNodeOptions::new(
-                "mynode",
-                "./testing/dummy_node",
-            ))
+            .spawn_node(SpawnNodeOptions::new("mynode", "./testing/dummy_node"))
             .await
             .unwrap();
 
@@ -1137,7 +1110,7 @@ mod tests {
             .await;
 
         assert!(
-            matches!(result, Ok(Err((exit_code, stderr))) if !exit_code.success() && stderr.len() > 0)
+            matches!(result, Ok(Err((exit_code, stderr))) if !exit_code.success() && !stderr.is_empty())
         );
     }
 
@@ -1152,10 +1125,7 @@ mod tests {
 
         // spawn dummy node
         let node = namespace
-            .spawn_node(SpawnNodeOptions::new(
-                "mynode",
-                "./testing/dummy_node",
-            ))
+            .spawn_node(SpawnNodeOptions::new("mynode", "./testing/dummy_node"))
             .await
             .unwrap();
 
@@ -1188,10 +1158,7 @@ mod tests {
 
         // spawn dummy node
         let node = namespace
-            .spawn_node(SpawnNodeOptions::new(
-                "mynode",
-                "./testing/dummy_node",
-            ))
+            .spawn_node(SpawnNodeOptions::new("mynode", "./testing/dummy_node"))
             .await
             .unwrap();
 
@@ -1217,10 +1184,7 @@ mod tests {
 
         // spawn dummy node
         let node = namespace
-            .spawn_node(SpawnNodeOptions::new(
-                "mynode",
-                "./testing/dummy_node",
-            ))
+            .spawn_node(SpawnNodeOptions::new("mynode", "./testing/dummy_node"))
             .await
             .unwrap();
 
@@ -1254,10 +1218,7 @@ mod tests {
 
         // spawn dummy node
         let node = namespace
-            .spawn_node(SpawnNodeOptions::new(
-                "mynode",
-                "./testing/dummy_node",
-            ))
+            .spawn_node(SpawnNodeOptions::new("mynode", "./testing/dummy_node"))
             .await
             .unwrap();
 
@@ -1307,10 +1268,7 @@ mod tests {
 
         // spawn dummy node
         let node = namespace
-            .spawn_node(SpawnNodeOptions::new(
-                "mynode",
-                "./testing/dummy_node",
-            ))
+            .spawn_node(SpawnNodeOptions::new("mynode", "./testing/dummy_node"))
             .await
             .unwrap();
 
@@ -1396,27 +1354,24 @@ mod tests {
 
         let node = namespace
             .spawn_node(
-                SpawnNodeOptions::new(
-                    "mynode",
-                    "./testing/dummy_node",
-                )
-                .args(vec![
-                    "-flag1",
-                    "--flag2",
-                    "--option1=value1",
-                    "-option2=value2",
-                    "--option3 value3",
-                    "-option4 value4",
-                ])
-                .env(vec![
-                    ("MY_VAR_1", "MY_VALUE_1"),
-                    ("MY_VAR_2", "MY_VALUE_2"),
-                    ("MY_VAR_3", "MY_VALUE_3"),
-                ])
-                .injected_files(vec![
-                    TransferedFile::new("/file1", "/cfg/file1"),
-                    TransferedFile::new("/file2", "/data/file2"),
-                ]),
+                SpawnNodeOptions::new("mynode", "./testing/dummy_node")
+                    .args(vec![
+                        "-flag1",
+                        "--flag2",
+                        "--option1=value1",
+                        "-option2=value2",
+                        "--option3 value3",
+                        "-option4 value4",
+                    ])
+                    .env(vec![
+                        ("MY_VAR_1", "MY_VALUE_1"),
+                        ("MY_VAR_2", "MY_VALUE_2"),
+                        ("MY_VAR_3", "MY_VALUE_3"),
+                    ])
+                    .injected_files(vec![
+                        TransferedFile::new("/file1", "/cfg/file1"),
+                        TransferedFile::new("/file2", "/data/file2"),
+                    ]),
             )
             .await
             .unwrap();
@@ -1518,10 +1473,7 @@ mod tests {
 
         // spawn dummy node
         let node = namespace
-            .spawn_node(SpawnNodeOptions::new(
-                "mynode",
-                "./testing/dummy_node",
-            ))
+            .spawn_node(SpawnNodeOptions::new("mynode", "./testing/dummy_node"))
             .await
             .unwrap();
 
@@ -1561,7 +1513,7 @@ mod tests {
                         .cmdline()
                         .iter()
                         .any(|args| args.iter().any(|arg| arg.contains(name)))
-                        .then(|| process)
+                        .then_some(process)
                 } else {
                     None
                 }
diff --git a/crates/support/src/fs/in_memory.rs b/crates/support/src/fs/in_memory.rs
index 7f3fa04f7d31a68a722f90fdd64d999a2817bbf9..05c9b53899967e6acd93d1a883e73e34715af40f 100644
--- a/crates/support/src/fs/in_memory.rs
+++ b/crates/support/src/fs/in_memory.rs
@@ -77,9 +77,9 @@ impl InMemoryFile {
     }
 
     pub fn mode(&self) -> u32 {
-        match self {
-            &Self::File { mode, .. } => mode,
-            &Self::Directory { mode, .. } => mode,
+        match *self {
+            Self::File { mode, .. } => mode,
+            Self::Directory { mode, .. } => mode,
         }
     }
 
@@ -98,9 +98,8 @@ impl InMemoryFile {
     }
 
     pub fn set_mirror(&mut self) {
-        match self {
-            Self::File { mirror, .. } => *mirror = true,
-            _ => {},
+        if let Self::File { mirror, .. } = self {
+            *mirror = true;
         };
     }
 }
diff --git a/crates/support/src/fs/local.rs b/crates/support/src/fs/local.rs
index 1906f5588ad0e5ae95c519a9d487835ae96cb186..ecf34334c7fd6d0bdfe7276416ec60a874f0c3a5 100644
--- a/crates/support/src/fs/local.rs
+++ b/crates/support/src/fs/local.rs
@@ -88,13 +88,13 @@ mod tests {
     }
 
     fn teardown(test_dir: String) {
-        std::fs::remove_dir_all(&test_dir).unwrap();
+        std::fs::remove_dir_all(test_dir).unwrap();
     }
 
     #[tokio::test]
     async fn create_dir_should_create_a_new_directory_at_path() {
         let test_dir = setup();
-        let fs = LocalFileSystem::default();
+        let fs = LocalFileSystem;
 
         let new_dir = format!("{test_dir}/mynewdir");
         fs.create_dir(&new_dir).await.unwrap();
@@ -107,7 +107,7 @@ mod tests {
     #[tokio::test]
     async fn create_dir_should_bubble_up_error_if_some_happens() {
         let test_dir = setup();
-        let fs = LocalFileSystem::default();
+        let fs = LocalFileSystem;
 
         let new_dir = format!("{test_dir}/mynewdir");
         // intentionally create new dir before calling function to force error
@@ -121,7 +121,7 @@ mod tests {
     #[tokio::test]
     async fn create_dir_all_should_create_a_new_directory_and_all_of_it_ancestors_at_path() {
         let test_dir = setup();
-        let fs = LocalFileSystem::default();
+        let fs = LocalFileSystem;
 
         let new_dir = format!("{test_dir}/the/path/to/mynewdir");
         fs.create_dir_all(&new_dir).await.unwrap();
@@ -134,7 +134,7 @@ mod tests {
     #[tokio::test]
     async fn create_dir_all_should_bubble_up_error_if_some_happens() {
         let test_dir = setup();
-        let fs = LocalFileSystem::default();
+        let fs = LocalFileSystem;
 
         let new_dir = format!("{test_dir}/the/path/to/mynewdir");
         // intentionally create new file as ancestor before calling function to force error
@@ -148,7 +148,7 @@ mod tests {
     #[tokio::test]
     async fn read_should_return_the_contents_of_the_file_at_path() {
         let test_dir = setup();
-        let fs = LocalFileSystem::default();
+        let fs = LocalFileSystem;
 
         let file_path = format!("{test_dir}/myfile");
         std::fs::write(&file_path, b"Test").unwrap();
@@ -161,7 +161,7 @@ mod tests {
     #[tokio::test]
     async fn read_should_bubble_up_error_if_some_happens() {
         let test_dir = setup();
-        let fs = LocalFileSystem::default();
+        let fs = LocalFileSystem;
 
         let file_path = format!("{test_dir}/myfile");
         // intentionally forget to create file to force error
@@ -174,7 +174,7 @@ mod tests {
     #[tokio::test]
     async fn read_to_string_should_return_the_contents_of_the_file_at_path_as_string() {
         let test_dir = setup();
-        let fs = LocalFileSystem::default();
+        let fs = LocalFileSystem;
 
         let file_path = format!("{test_dir}/myfile");
         std::fs::write(&file_path, b"Test").unwrap();
@@ -187,7 +187,7 @@ mod tests {
     #[tokio::test]
     async fn read_to_string_should_bubble_up_error_if_some_happens() {
         let test_dir = setup();
-        let fs = LocalFileSystem::default();
+        let fs = LocalFileSystem;
 
         let file_path = format!("{test_dir}/myfile");
         // intentionally forget to create file to force error
@@ -200,7 +200,7 @@ mod tests {
     #[tokio::test]
     async fn write_should_create_a_new_file_at_path_with_contents() {
         let test_dir = setup();
-        let fs = LocalFileSystem::default();
+        let fs = LocalFileSystem;
 
         let file_path = format!("{test_dir}/myfile");
         fs.write(&file_path, "Test").await.unwrap();
@@ -212,7 +212,7 @@ mod tests {
     #[tokio::test]
     async fn write_should_overwrite_an_existing_file_with_contents() {
         let test_dir = setup();
-        let fs = LocalFileSystem::default();
+        let fs = LocalFileSystem;
 
         let file_path = format!("{test_dir}/myfile");
         std::fs::write(&file_path, "Test").unwrap();
@@ -226,7 +226,7 @@ mod tests {
     #[tokio::test]
     async fn write_should_bubble_up_error_if_some_happens() {
         let test_dir = setup();
-        let fs = LocalFileSystem::default();
+        let fs = LocalFileSystem;
 
         let file_path = format!("{test_dir}/myfile");
         // intentionally create directory instead of file to force error
@@ -240,7 +240,7 @@ mod tests {
     #[tokio::test]
     async fn append_should_create_a_new_file_at_path_with_contents() {
         let test_dir = setup();
-        let fs = LocalFileSystem::default();
+        let fs = LocalFileSystem;
 
         let file_path = format!("{test_dir}/myfile");
         fs.append(&file_path, "Test").await.unwrap();
@@ -252,7 +252,7 @@ mod tests {
     #[tokio::test]
     async fn append_should_updates_an_existing_file_by_appending_contents() {
         let test_dir = setup();
-        let fs = LocalFileSystem::default();
+        let fs = LocalFileSystem;
 
         let file_path = format!("{test_dir}/myfile");
         std::fs::write(&file_path, "Test").unwrap();
@@ -266,7 +266,7 @@ mod tests {
     #[tokio::test]
     async fn append_should_bubble_up_error_if_some_happens() {
         let test_dir = setup();
-        let fs = LocalFileSystem::default();
+        let fs = LocalFileSystem;
 
         let file_path = format!("{test_dir}/myfile");
         // intentionally create directory instead of file to force error
@@ -280,7 +280,7 @@ mod tests {
     #[tokio::test]
     async fn copy_should_create_a_duplicate_of_source() {
         let test_dir = setup();
-        let fs = LocalFileSystem::default();
+        let fs = LocalFileSystem;
 
         let from_path = format!("{test_dir}/myfile");
         std::fs::write(&from_path, "Test").unwrap();
@@ -294,7 +294,7 @@ mod tests {
     #[tokio::test]
     async fn copy_should_ovewrite_destination_if_alread_exists() {
         let test_dir = setup();
-        let fs = LocalFileSystem::default();
+        let fs = LocalFileSystem;
 
         let from_path = format!("{test_dir}/myfile");
         std::fs::write(&from_path, "Test").unwrap();
@@ -309,7 +309,7 @@ mod tests {
     #[tokio::test]
     async fn copy_should_bubble_up_error_if_some_happens() {
         let test_dir = setup();
-        let fs = LocalFileSystem::default();
+        let fs = LocalFileSystem;
 
         let from_path = format!("{test_dir}/nonexistentfile");
         let to_path = format!("{test_dir}/mycopy");
@@ -322,10 +322,10 @@ mod tests {
     #[tokio::test]
     async fn set_mode_should_update_the_file_mode_at_path() {
         let test_dir = setup();
-        let fs = LocalFileSystem::default();
+        let fs = LocalFileSystem;
         let path = format!("{test_dir}/myfile");
         std::fs::write(&path, "Test").unwrap();
-        assert!(std::fs::metadata(&path).unwrap().permissions().mode() != (FILE_BITS + 0400));
+        assert!(std::fs::metadata(&path).unwrap().permissions().mode() != (FILE_BITS + 0o400));
 
         fs.set_mode(&path, 0o400).await.unwrap();
 
@@ -339,7 +339,7 @@ mod tests {
     #[tokio::test]
     async fn set_mode_should_update_the_directory_mode_at_path() {
         let test_dir = setup();
-        let fs = LocalFileSystem::default();
+        let fs = LocalFileSystem;
         let path = format!("{test_dir}/mydir");
         std::fs::create_dir(&path).unwrap();
         assert!(std::fs::metadata(&path).unwrap().permissions().mode() != (DIR_BITS + 0o700));
@@ -356,7 +356,7 @@ mod tests {
     #[tokio::test]
     async fn set_mode_should_bubble_up_error_if_some_happens() {
         let test_dir = setup();
-        let fs = LocalFileSystem::default();
+        let fs = LocalFileSystem;
         let path = format!("{test_dir}/somemissingfile");
         // intentionnally don't create file