From 7cd4b8987babb7daf14b6fe2a047036f22456bd9 Mon Sep 17 00:00:00 2001 From: Jeremiah Russell Date: Sat, 4 Oct 2025 09:51:32 +0100 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20refactor(labels):=20improv?= =?UTF-8?q?e=20label=20listing=20and=20mapping?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - refactor label listing to use `else` for option handling - enhance label listing with id display and conditional logging - create label map for efficient label id lookup --- src/labels.rs | 49 ++++++++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/src/labels.rs b/src/labels.rs index a936cac..aa470a7 100644 --- a/src/labels.rs +++ b/src/labels.rs @@ -67,31 +67,38 @@ impl Labels { let call = hub.users().labels_list("me"); let (_response, list) = call.doit().await.map_err(Box::new)?; - if show { - if let Some(labels) = &list.labels { - for label in labels { - if let Some(name) = &label.name { - log::info!("{name}"); - } else { - log::warn!("No name for label {:?}", label.id); - } + // if show { + // let Some(labels) = &list.labels else { + // for label in labels { + // if let Some(name) = &label.name { + // log::info!("{name}"); + // } else { + // log::warn!("No name for label {:?}", label.id); + // } + // } + // } + // } + + let Some(label_list) = list.labels else { + return Ok(Labels { + hub, + label_list: Vec::new(), + label_map: HashMap::new(), + }); + }; + + let mut label_map = HashMap::new(); + for label in &label_list { + if label.id.is_some() && label.name.is_some() { + let name = label.name.clone().unwrap(); + let id = label.id.clone().unwrap(); + if show { + log::info!("{name}: {id}") } + label_map.insert(name, id); } } - let (label_list, label_map) = if let Some(labels) = list.labels { - let mut label_map = HashMap::new(); - for label in &labels { - if label.id.is_some() && label.name.is_some() { - let label = label.clone(); - label_map.insert(label.name.unwrap(), label.id.unwrap()); - } - } - (labels, label_map) - } else { - (Vec::new(), HashMap::new()) - }; - Ok(Labels { hub, label_list,