{"record":{"id":"f65e6bf7b672b243","repo":"tracel-ai/burn","slug":"only-struct-and-enum-can-be-derived","errorCode":null,"errorMessage":"Only struct and enum can be derived","messagePattern":"Only struct and enum can be derived","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/burn-derive/src/config/analyzer.rs","lineNumber":85,"sourceCode":"    }\n\n    fn create_enum_analyzer(&self, name: Ident, data: syn::DataEnum) -> ConfigEnumAnalyzer {\n        ConfigEnumAnalyzer::new(name, data)\n    }\n}\n\nenum ConfigType {\n    Struct(Vec<Field>),\n    Enum(syn::DataEnum),\n}\n\nfn parse_asm(ast: &syn::DeriveInput) -> ConfigType {\n    match &ast.data {\n        syn::Data::Struct(struct_data) => {\n            ConfigType::Struct(struct_data.fields.clone().into_iter().collect())\n        }\n        syn::Data::Enum(enum_data) => ConfigType::Enum(enum_data.clone()),\n        syn::Data::Union(_) => panic!(\"Only struct and enum can be derived\"),\n    }\n}\n","sourceCodeStart":67,"sourceCodeEnd":88,"githubUrl":"https://github.com/tracel-ai/burn/blob/d16f7ba2ed0d41408189384044cc886fb4c8f957/crates/burn-derive/src/config/analyzer.rs#L67-L88","documentation":"Derive-macro input guard: `parse_asm` (part of the Config derive) only implements analyzers for structs and enums; a union passed to `#[derive(Config)]` reaches the `Data::Union` arm and panics at macro-expansion time. The failing input is the union item in the user's source code being derived.","triggerScenarios":"Thrown at crates/burn-derive/src/config/analyzer.rs:85 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Apply the Module derive only to structs."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"d16f7ba2ed0d41408189384044cc886fb4c8f957","analyzedAt":"2026-09-05T13:19:14.260Z","contentChangedAt":"2026-09-05T13:19:14.260Z","schemaVersion":2},"datasetVersion":"2026-09-12T17:17:11.597Z"}