summaryrefslogtreecommitdiff
path: root/src/tasks.rs
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/tasks.rs
parentd3e755389ad61a262767f4a0cb48c0a2f85c80c6 (diff)
perf: more prevalent &str
Diffstat (limited to 'src/tasks.rs')
-rw-r--r--src/tasks.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/tasks.rs b/src/tasks.rs
index 3c49c7a..9175214 100644
--- a/src/tasks.rs
+++ b/src/tasks.rs
@@ -1,6 +1,6 @@
pub struct Task<'a> {
pub name: &'a str,
- pub exec: fn(&[String]) -> Result<String, String>,
+ pub exec: fn(&[&str]) -> Result<String, String>,
}
impl<'a> PartialEq for &'a Task<'a> {
@@ -13,15 +13,15 @@ pub const TASKS: &[Task<'static>] = &[Task { name: "nop", exec: no_op }, Task {
pub const NETWORK_T: Task<'static> = Task { name: "network", exec: network };
-fn no_op(_: &[String]) -> Result<String, String> {
+fn no_op(_: &[&str]) -> Result<String, String> {
Ok("".to_string())
}
-fn exec(cmds: &[String]) -> Result<String, String> {
+fn exec(cmds: &[&str]) -> Result<String, String> {
use std::process::Command;
// TODO: fmt and add exit code, and add support for both stdout and stderr, and
// support for no output
- match Command::new(cmds[0].as_str()).args(&cmds[1..]).output() {
+ match Command::new(cmds[0]).args(&cmds[1..]).output() {
Ok(o) => {
if o.status.success() {
Ok(String::from_utf8_lossy(&o.stdout).to_string())
@@ -33,7 +33,7 @@ fn exec(cmds: &[String]) -> Result<String, String> {
}
}
-fn network(switch: &[String]) -> Result<String, String> {
+fn network(switch: &[&str]) -> Result<String, String> {
use std::process::{Command, Stdio};
let switch: bool = switch[0].parse::<bool>().map_err(|e| e.to_string())?;
@@ -112,7 +112,7 @@ pub enum IntoTaskErr {
NotFound(String),
}
-impl<'a> TryFrom<&str> for &'a Task<'a> {
+impl TryFrom<&str> for &'static Task<'static> {
type Error = IntoTaskErr;
fn try_from(value: &str) -> Result<Self, Self::Error> {