{"record":{"id":"89c6a52bdd1217bd","repo":"DioxusLabs/dioxus","slug":"enums-must-have-at-least-one-variant","errorCode":null,"errorMessage":"Enums must have at least one variant","messagePattern":"Enums must have at least one variant","errorType":"validation","errorClass":"syn::Error","httpStatus":null,"severity":"error","filePath":"packages/const-serialize-macro/src/lib.rs","lineNumber":99,"sourceCode":"                }.into()\n            }\n            syn::Fields::Unit => {\n                let ty = &input.ident;\n                let (impl_generics, ty_generics, where_clause) = input.generics.split_for_impl();\n                let mut where_clause = where_clause.cloned();\n                add_bounds(&mut where_clause, &input.generics, &krate);\n                quote! {\n                    unsafe impl #impl_generics #krate::SerializeConst for #ty #ty_generics #where_clause {\n                        const MEMORY_LAYOUT: #krate::Layout = #krate::Layout::Struct(#krate::StructLayout::new(\n                            std::mem::size_of::<Self>(),\n                            &[],\n                        ));\n                    }\n                }.into()\n            }\n        },\n        syn::Data::Enum(data) => match data.variants.len() {\n            0 => syn::Error::new(input.ident.span(), \"Enums must have at least one variant\")\n                .to_compile_error()\n                .into(),\n            1.. => {\n                let mut repr_c = false;\n                let mut discriminant_size = None;\n                for attr in &input.attrs {\n                    if attr.path().is_ident(\"repr\")\n                        && let Err(err) = attr.parse_nested_meta(|meta| {\n                            // #[repr(C)]\n                            if meta.path.is_ident(\"C\") {\n                                repr_c = true;\n                                return Ok(());\n                            }\n\n                            // #[repr(u8)]\n                            if meta.path.is_ident(\"u8\") {\n                                discriminant_size = Some(1);\n                                return Ok(());","sourceCodeStart":81,"sourceCodeEnd":117,"githubUrl":"https://github.com/DioxusLabs/dioxus/blob/393d190a801ccb441d41923e232289b4f8a5c669/packages/const-serialize-macro/src/lib.rs#L81-L117","documentation":"Error \"Enums must have at least one variant\" thrown in DioxusLabs/dioxus.","triggerScenarios":"Thrown at packages/const-serialize-macro/src/lib.rs:99 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"393d190a801ccb441d41923e232289b4f8a5c669","analyzedAt":"2026-08-16T11:27:45.815Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}