From fad2175aa29a4da192ddc965d912f42821ba75b5 Mon Sep 17 00:00:00 2001 From: Janis Date: Fri, 21 Apr 2023 18:18:05 +0200 Subject: [PATCH] enum name and variant names more readable --- src/lib.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 45cbab9..6f7575a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -433,8 +433,13 @@ pub mod sdk { .enumerate() // canonicalize the names into valid rust .map(|(value, name)| { - let name = name.get_name().unwrap_or("AnonymousVariant".to_string()); - let name = canonicalize_name(&name).to_string(); + let name = &name.get_name().unwrap_or("AnonymousVariant".to_string()); + + // ignore everything preceeding the last double colon + let name = canonicalize_name( + name.rsplit_once("::").map(|(_, name)| name).unwrap_or(name), + ) + .to_string(); (value, name) }) // store conflicts next to each other @@ -456,7 +461,7 @@ pub mod sdk { // sort by value let mut variants = BTreeMap::new(); values.into_iter().for_each(|(name, values)| { - if values.len() > 0 { + if values.len() > 1 { for (i, value) in values.into_iter().enumerate() { variants.insert(value, format!("{name}{i}")); } @@ -467,7 +472,7 @@ pub mod sdk { let name = enm .as_uobject() - .get_full_name() + .get_name() .context("enum name could not be found")?; let name = canonicalize_name(&name).to_string(); @@ -504,6 +509,7 @@ pub mod sdk { impl FoldIntoPackages for T where T: Iterator {} + #[derive(Debug)] pub struct Sdk { pub packages: HashMap, }