mirror of
https://github.com/2e3s/awatcher.git
synced 2025-06-07 12:05:49 +00:00
Remove avoidable clones
This commit is contained in:
parent
97a5867df7
commit
534c8dc984
@ -57,7 +57,7 @@ impl Config {
|
|||||||
|
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
port: config.server.port,
|
port: config.server.port,
|
||||||
host: config.server.host.clone(),
|
host: config.server.host,
|
||||||
idle_timeout: config.client.get_idle_timeout(),
|
idle_timeout: config.client.get_idle_timeout(),
|
||||||
poll_time_idle: config.client.get_poll_time_idle(),
|
poll_time_idle: config.client.get_poll_time_idle(),
|
||||||
poll_time_window: config.client.get_poll_time_window(),
|
poll_time_window: config.client.get_poll_time_window(),
|
||||||
|
@ -125,31 +125,32 @@ impl FileConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn merge_cli(&mut self, matches: &ArgMatches) {
|
fn merge_cli(&mut self, matches: &ArgMatches) {
|
||||||
self.client.poll_time_idle_seconds = get_arg_value(
|
get_arg_value(
|
||||||
"poll-time-idle",
|
"poll-time-idle",
|
||||||
matches,
|
matches,
|
||||||
self.client.poll_time_idle_seconds,
|
&mut self.client.poll_time_idle_seconds,
|
||||||
);
|
);
|
||||||
self.client.poll_time_window_seconds = get_arg_value(
|
get_arg_value(
|
||||||
"poll-time-window",
|
"poll-time-window",
|
||||||
matches,
|
matches,
|
||||||
self.client.poll_time_window_seconds,
|
&mut self.client.poll_time_window_seconds,
|
||||||
);
|
);
|
||||||
self.client.idle_timeout_seconds =
|
get_arg_value(
|
||||||
get_arg_value("idle-timeout", matches, self.client.idle_timeout_seconds);
|
"idle-timeout",
|
||||||
|
matches,
|
||||||
self.server.port = get_arg_value("port", matches, self.server.port);
|
&mut self.client.idle_timeout_seconds,
|
||||||
self.server.host = get_arg_value("host", matches, self.server.host.clone());
|
);
|
||||||
|
get_arg_value("port", matches, &mut self.server.port);
|
||||||
|
get_arg_value("host", matches, &mut self.server.host);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_arg_value<T>(id: &str, matches: &ArgMatches, config_value: T) -> T
|
fn get_arg_value<T>(id: &str, matches: &ArgMatches, config_value: &mut T)
|
||||||
where
|
where
|
||||||
T: Clone + Send + Sync + 'static,
|
T: Clone + Send + Sync + 'static,
|
||||||
{
|
{
|
||||||
if let Some(ValueSource::CommandLine) = matches.value_source(id) {
|
if let Some(ValueSource::CommandLine) = matches.value_source(id) {
|
||||||
matches.get_one::<T>(id).unwrap().clone()
|
let value = &mut matches.get_one::<T>(id).unwrap().clone();
|
||||||
} else {
|
std::mem::swap(config_value, value);
|
||||||
config_value
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user