summaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2025-09-17 19:24:00 +0800
committerlittleblack111 <littleblack11111@gmail.com>2025-09-17 21:28:53 +0800
commitb7bc239c47d419ea5c5b078b89ca11def6c7311b (patch)
treebaa005a248467d8347c5e3537aefae47ad6340dd /src/client
parentd3e755389ad61a262767f4a0cb48c0a2f85c80c6 (diff)
perf: more prevalent &str
Diffstat (limited to 'src/client')
-rw-r--r--src/client/connector.rs4
-rw-r--r--src/client/connector/httpconnector.rs4
-rw-r--r--src/client/executor.rs10
3 files changed, 9 insertions, 9 deletions
diff --git a/src/client/connector.rs b/src/client/connector.rs
index c16b4bc..50d5f65 100644
--- a/src/client/connector.rs
+++ b/src/client/connector.rs
@@ -23,7 +23,7 @@ pub trait Connection {
fn get_ip(&self) -> Option<IpAddr>;
fn force_network(&mut self) {
- _ = Executor::new(&NETWORK_T, ["on".to_string()]);
+ _ = Executor::new(&NETWORK_T, ["on"]);
}
fn init<'a>(&self, c: &crate::client::Client<'a, Self>) -> std::result::Result<(), Self::Err>
@@ -62,7 +62,7 @@ pub trait Connection {
None => return,
};
// FIXME: handle the errors... peak prod code
- self.ntfy(Executor::new(task.try_into().unwrap(), it.map(str::to_string)).unwrap().run().unwrap().clone().unwrap()).unwrap();
+ self.ntfy(Executor::new(task.try_into().unwrap(), it).unwrap().run().unwrap().clone().unwrap()).unwrap();
}
Result::Err(e) => {
#[cfg(debug_assertions)]
diff --git a/src/client/connector/httpconnector.rs b/src/client/connector/httpconnector.rs
index c6be503..9addf66 100644
--- a/src/client/connector/httpconnector.rs
+++ b/src/client/connector/httpconnector.rs
@@ -7,7 +7,7 @@ use reqwest::{
use std::{net::IpAddr, thread::sleep, time::Duration};
pub struct HTTPConnector {
- network_enforcer: Executor<'static>,
+ network_enforcer: Executor<'static, 'static>,
pull_url: Url,
ntfy_url: Url,
ip_getter_url: Url,
@@ -18,7 +18,7 @@ pub struct HTTPConnector {
impl HTTPConnector {
pub fn new(pull_url: &str, ntfy_url: &str, ip_getter_url: &str) -> std::result::Result<Self, url::ParseError> {
Ok(Self {
- network_enforcer: Executor::new(&NETWORK_T, ["on".to_string()]).unwrap(), // .unwrap() should never panic
+ network_enforcer: Executor::new(&NETWORK_T, ["on"]).unwrap(), // .unwrap() should never panic
prev: String::new(),
pull_url: Url::parse(pull_url)?,
ntfy_url: Url::parse(ntfy_url)?,
diff --git a/src/client/executor.rs b/src/client/executor.rs
index 35e3f75..b75040a 100644
--- a/src/client/executor.rs
+++ b/src/client/executor.rs
@@ -1,13 +1,13 @@
use remote_control_rs::tasks::{IntoTaskErr, Task};
-pub struct Executor<'a> {
- task: &'a Task<'a>,
- args: Box<[String]>,
+pub struct Executor<'a, 't> {
+ task: &'a Task<'t>,
+ args: Box<[&'a str]>,
output: Option<Result<String, String>>,
}
-impl<'a> Executor<'a> {
- pub fn new(task: &'a Task<'a>, args: impl IntoIterator<Item = String>) -> Result<Self, IntoTaskErr> {
+impl<'a, 't> Executor<'a, 't> {
+ pub fn new(task: &'t Task<'t>, args: impl IntoIterator<Item = &'a str>) -> Result<Self, IntoTaskErr> {
Ok(Self { task: task, args: args.into_iter().collect(), output: None })
}