diff options
| -rw-r--r-- | src/server/server/tcpserver.rs | 22 | ||||
| -rw-r--r-- | src/tasks/server.rs | 20 |
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())) } } |
