Skip to content

Commit 8c18cac

Browse files
committed
chore: apply clippy
1 parent 03d6d6f commit 8c18cac

File tree

4 files changed

+45
-15
lines changed

4 files changed

+45
-15
lines changed

crates/libs/kill_tree/src/blocking.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::core::{Config, Outputs, ProcessId, Result};
1+
use crate::core::{blocking::ProcessInfosProvidable, Config, Outputs, ProcessId, Result};
22

33
#[cfg(target_os = "linux")]
44
use crate::linux as imp;
@@ -125,6 +125,7 @@ pub fn kill_tree(process_id: ProcessId) -> Result<Outputs> {
125125
/// ```
126126
pub fn kill_tree_with_config(process_id: ProcessId, config: &Config) -> Result<Outputs> {
127127
imp::validate_process_id(process_id)?;
128-
let process_infos = imp::blocking::get_process_infos()?;
128+
let process_infos_provider = imp::blocking::ProcessInfosProvider {};
129+
let process_infos = process_infos_provider.get_process_infos()?;
129130
crate::common::kill_tree_internal(process_id, config, process_infos)
130131
}

crates/libs/kill_tree/src/core.rs

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ pub enum Error {
2020
#[cfg(unix)]
2121
Unix(nix::Error),
2222
#[cfg(feature = "tokio")]
23-
TokioJoin(tokio::task::JoinError),
23+
TokioJoin(::tokio::task::JoinError),
2424
}
2525

2626
impl std::fmt::Display for Error {
@@ -127,3 +127,27 @@ impl Default for Config {
127127
}
128128
}
129129
}
130+
131+
#[cfg(feature = "blocking")]
132+
pub(crate) mod blocking {
133+
use super::{ProcessInfos, Result};
134+
135+
pub(crate) trait ProcessInfosProvidable {
136+
fn get_process_infos(&self) -> Result<ProcessInfos>;
137+
}
138+
}
139+
140+
#[cfg(feature = "tokio")]
141+
pub(crate) mod tokio {
142+
use super::{Error, ProcessInfos, Result};
143+
144+
impl From<::tokio::task::JoinError> for Error {
145+
fn from(e: ::tokio::task::JoinError) -> Self {
146+
Error::TokioJoin(e)
147+
}
148+
}
149+
150+
pub(crate) trait ProcessInfosProvidable {
151+
async fn get_process_infos(&self) -> Result<ProcessInfos>;
152+
}
153+
}

crates/libs/kill_tree/src/tokio.rs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::core::{Config, Error, Outputs, ProcessId, Result};
1+
use crate::core::{tokio::ProcessInfosProvidable, Config, Outputs, ProcessId, Result};
22

33
#[cfg(target_os = "linux")]
44
use crate::linux as imp;
@@ -7,12 +7,6 @@ use crate::macos as imp;
77
#[cfg(windows)]
88
use crate::windows as imp;
99

10-
impl From<tokio::task::JoinError> for Error {
11-
fn from(e: tokio::task::JoinError) -> Self {
12-
Error::TokioJoin(e)
13-
}
14-
}
15-
1610
/// Returns the max available process ID.
1711
/// # Platform-specifics
1812
/// ## Windows
@@ -119,6 +113,7 @@ pub async fn kill_tree(process_id: ProcessId) -> Result<Outputs> {
119113
/// ```
120114
pub async fn kill_tree_with_config(process_id: ProcessId, config: &Config) -> Result<Outputs> {
121115
imp::validate_process_id(process_id)?;
122-
let process_infos = imp::tokio::get_process_infos().await?;
116+
let process_infos_provider = imp::tokio::ProcessInfosProvider {};
117+
let process_infos = process_infos_provider.get_process_infos().await?;
123118
crate::common::kill_tree_internal(process_id, config, process_infos)
124119
}

crates/libs/kill_tree/src/windows.rs

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -169,17 +169,27 @@ pub(crate) fn get_process_infos() -> Result<ProcessInfos> {
169169
#[cfg(feature = "blocking")]
170170
pub(crate) mod blocking {
171171
use super::{ProcessInfos, Result};
172+
use crate::core::blocking::ProcessInfosProvidable;
172173

173-
pub(crate) fn get_process_infos() -> Result<ProcessInfos> {
174-
crate::windows::get_process_infos()
174+
pub(crate) struct ProcessInfosProvider {}
175+
176+
impl ProcessInfosProvidable for ProcessInfosProvider {
177+
fn get_process_infos(&self) -> Result<ProcessInfos> {
178+
crate::windows::get_process_infos()
179+
}
175180
}
176181
}
177182

178183
#[cfg(feature = "tokio")]
179184
pub(crate) mod tokio {
180185
use super::{ProcessInfos, Result};
186+
use crate::core::tokio::ProcessInfosProvidable;
181187

182-
pub(crate) async fn get_process_infos() -> Result<ProcessInfos> {
183-
crate::windows::get_process_infos()
188+
pub(crate) struct ProcessInfosProvider {}
189+
190+
impl ProcessInfosProvidable for ProcessInfosProvider {
191+
async fn get_process_infos(&self) -> Result<ProcessInfos> {
192+
crate::windows::get_process_infos()
193+
}
184194
}
185195
}

0 commit comments

Comments
 (0)