From 047e393eb877c12c3ebb6cef1cf03ad0e43d1b20 Mon Sep 17 00:00:00 2001 From: Josh Megnauth Date: Sat, 7 Sep 2024 02:17:27 -0400 Subject: [PATCH] Remove unneeded searches in `ConfigUpdateUser` --- src/greeter.rs | 46 ++++++++++++++++++++++------------------------ 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/src/greeter.rs b/src/greeter.rs index 619376f..5448fb9 100644 --- a/src/greeter.rs +++ b/src/greeter.rs @@ -818,22 +818,20 @@ impl cosmic::Application for App { let data_idx = Self::user_data_index(&self.flags.user_datas, &username); self.selected_username = NameIndexPair { username, data_idx }; self.surface_images.clear(); - // TODO: Remove search - if let Some(session) = self - .flags - .user_datas - .iter() - .find(|user| user.name == self.selected_username.username) - .and_then(|UserData { uid, .. }| { - NonZeroU32::new(*uid).and_then(|uid| { - self.flags - .greeter_config - .users - .get(&uid) - .and_then(|conf| conf.last_session.as_deref()) + if let Some(session) = data_idx.and_then(|i| { + self.flags + .user_datas + .get(i) + .and_then(|UserData { uid, .. }| { + NonZeroU32::new(*uid).and_then(|uid| { + self.flags + .greeter_config + .users + .get(&uid) + .and_then(|conf| conf.last_session.as_deref()) + }) }) - }) - { + }) { session.clone_into(&mut self.selected_session); }; match &self.socket_state { @@ -846,15 +844,15 @@ impl cosmic::Application for App { } } Message::ConfigUpdateUser => { - let Some(user_entry) = self - .flags - .user_datas - .iter() - .find(|user| user.name == self.selected_username.username) - .and_then(|UserData { uid, .. }| { - NonZeroU32::new(*uid).map(|uid| self.flags.greeter_config.users.entry(uid)) - }) - else { + let Some(user_entry) = self.selected_username.data_idx.and_then(|i| { + self.flags + .user_datas + .get(i) + .and_then(|UserData { uid, .. }| { + NonZeroU32::new(*uid) + .map(|uid| self.flags.greeter_config.users.entry(uid)) + }) + }) else { log::error!("Couldn't find user: {:?}", self.selected_username.username); return Command::none(); };