DioxusLabs/dioxus · error · syn::Error

Enums must have at least one variant

Error message

Enums must have at least one variant

What it means

Error "Enums must have at least one variant" thrown in DioxusLabs/dioxus.

Source

Thrown at packages/const-serialize-macro/src/lib.rs:99

                }.into()
            }
            syn::Fields::Unit => {
                let ty = &input.ident;
                let (impl_generics, ty_generics, where_clause) = input.generics.split_for_impl();
                let mut where_clause = where_clause.cloned();
                add_bounds(&mut where_clause, &input.generics, &krate);
                quote! {
                    unsafe impl #impl_generics #krate::SerializeConst for #ty #ty_generics #where_clause {
                        const MEMORY_LAYOUT: #krate::Layout = #krate::Layout::Struct(#krate::StructLayout::new(
                            std::mem::size_of::<Self>(),
                            &[],
                        ));
                    }
                }.into()
            }
        },
        syn::Data::Enum(data) => match data.variants.len() {
            0 => syn::Error::new(input.ident.span(), "Enums must have at least one variant")
                .to_compile_error()
                .into(),
            1.. => {
                let mut repr_c = false;
                let mut discriminant_size = None;
                for attr in &input.attrs {
                    if attr.path().is_ident("repr")
                        && let Err(err) = attr.parse_nested_meta(|meta| {
                            // #[repr(C)]
                            if meta.path.is_ident("C") {
                                repr_c = true;
                                return Ok(());
                            }

                            // #[repr(u8)]
                            if meta.path.is_ident("u8") {
                                discriminant_size = Some(1);
                                return Ok(());

View on GitHub (pinned to 393d190a80)

When it happens

Trigger: Thrown at packages/const-serialize-macro/src/lib.rs:99 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of DioxusLabs/dioxus@393d190a80 (2026-08-16). Data as JSON: /api/errors/89c6a52bdd1217bd. Report an issue: GitHub.