summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/server/tcpserver.rs22
-rw-r--r--src/tasks/server.rs20
2 files changed, 21 insertions, 21 deletions
diff --git a/src/server/server/tcpserver.rs b/src/server/server/tcpserver.rs
index d4f1b1a..f4f6968 100644
--- a/src/server/server/tcpserver.rs
+++ b/src/server/server/tcpserver.rs
@@ -200,17 +200,17 @@ impl<'a> Client<'a> {
Request::Post(
(
name,
- Executor::new(
- (name.try_into() as Result<&Task, IntoTaskErr>)
- .unwrap()
- .as_ref(),
- args.split_whitespace(),
- ServerCtx {
- stream: &self.stream,
- },
- )
- .run()
- .to_owned(),
+ {
+ Executor::new(
+ (<remote_control_rs::tasks::server::Task<'_> as core::convert::TryFrom<_>>::try_from(name).unwrap()).as_ref(),
+ args.split_whitespace(),
+ ServerCtx {
+ stream: &self.stream,
+ },
+ )
+ .run()
+ .to_owned()
+ },
)
.into(),
),
diff --git a/src/tasks/server.rs b/src/tasks/server.rs
index dee5254..4271b7c 100644
--- a/src/tasks/server.rs
+++ b/src/tasks/server.rs
@@ -48,20 +48,20 @@ fn get_ip(_: &[&str], ctx: &ServerCtx) -> TaskOutput {
}
}
-impl<'a> TryFrom<Name> for &'static Task<'a> {
+impl<'a> TryFrom<Name> for Task<'a> {
type Error = IntoTaskErr;
fn try_from(value: Name) -> Result<Self, Self::Error> {
- for task in TASKS {
- if task
- .0
- .name
- == value
- {
- return Ok(task);
- }
+ match value {
+ Name::GetIp => Ok(
+ Task(
+ BaseTask {
+ name: Name::GetIp,
+ exec: get_ip,
+ },
+ ),
+ ),
}
- Err(IntoTaskErr::NotFound(value.to_string()))
}
}