fix(codegen): hacky fix for colliding enum names
This commit is contained in:
parent
14e6e81278
commit
40913bc89b
|
@ -429,6 +429,24 @@ impl Enum {
|
|||
});
|
||||
}
|
||||
|
||||
let shared: Vec<_> = result
|
||||
.variants
|
||||
.iter_mut()
|
||||
.filter(|v| v.name == "Variant")
|
||||
.collect();
|
||||
if shared.len() >= 2 {
|
||||
for (idx, variant) in shared.into_iter().enumerate() {
|
||||
let label = idx + 1;
|
||||
variant.name = format!("Variant{}", label);
|
||||
if let EnumVariantValue::Tuple(values) = &mut variant.value {
|
||||
if let [EnumVariantTupleValue::Enum { name, inner, .. }] = values.as_mut_slice()
|
||||
{
|
||||
inner.name.push_str(&label.to_string());
|
||||
name.push_str(&label.to_string());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Some(result)
|
||||
}
|
||||
|
||||
|
@ -444,8 +462,8 @@ impl Enum {
|
|||
|
||||
pub fn codegen(&self, resolved: &ResolvedSchema) -> Option<TokenStream> {
|
||||
let repr = self.repr.map(|r| match r {
|
||||
EnumRepr::U8 => quote! { #[repr(u8)]},
|
||||
EnumRepr::U32 => quote! { #[repr(u32)]},
|
||||
EnumRepr::U8 => quote! { #[repr(u8)] },
|
||||
EnumRepr::U32 => quote! { #[repr(u32)] },
|
||||
});
|
||||
let name = format_ident!("{}", self.name);
|
||||
let desc = self.description.as_ref().map(|d| {
|
||||
|
|
Loading…
Reference in a new issue