From c7de2da6f9a966096d15d00cfc2c404fd086ae24 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Wed, 24 Sep 2025 00:57:52 +0800 Subject: fix lifetime issue --- src/server/server/tcpserver.rs | 22 +++++++++++----------- 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( + ( 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 for &'static Task<'a> { +impl<'a> TryFrom for Task<'a> { type Error = IntoTaskErr; fn try_from(value: Name) -> Result { - 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())) } } -- cgit v1.2.3