{"record":{"id":"2a2b856a45015c02","repo":"bevyengine/bevy","slug":"deref-kind-can-only-be-derived-on-structs","errorCode":null,"errorMessage":"{deref_kind} can only be derived on structs","messagePattern":"(.+?) can only be derived on structs","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/bevy_derive/src/derefs.rs","lineNumber":100,"sourceCode":"                            ),\n                        ));\n                    }\n\n                    let member = to_member(field, index);\n                    selected_field = Some((member, &field.ty));\n                }\n            }\n\n            if let Some(selected_field) = selected_field {\n                Ok(selected_field)\n            } else {\n                Err(syn::Error::new(\n                    Span::call_site().into(),\n                    format!(\"deriving {deref_kind} on multi-field structs requires one field to have the {deref_attr_str} attribute\"),\n                ))\n            }\n        }\n        _ => Err(syn::Error::new(\n            Span::call_site().into(),\n            format!(\"{deref_kind} can only be derived on structs\"),\n        )),\n    }\n}\n\nfn to_member(field: &Field, index: usize) -> Member {\n    field\n        .ident\n        .as_ref()\n        .map(|name| Member::Named(name.clone()))\n        .unwrap_or_else(|| Member::Unnamed(Index::from(index)))\n}\n","sourceCodeStart":82,"sourceCodeEnd":114,"githubUrl":"https://github.com/bevyengine/bevy/blob/396ca727080776bd313bb892423b7d94e03b81b4/crates/bevy_derive/src/derefs.rs#L82-L114","documentation":"Compile-time syn error from get_deref_field: #[derive(Deref)] or #[derive(DerefMut)] was applied to an enum or union rather than a struct, which the derive macro does not support — dereferencing requires a struct field to forward to.","triggerScenarios":"Thrown at crates/bevy_derive/src/derefs.rs:100 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Apply the derive only to structs","Wrap the enum in a newtype struct and derive Deref on that"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"396ca727080776bd313bb892423b7d94e03b81b4","analyzedAt":"2026-08-20T16:12:39.808Z","contentChangedAt":"2026-08-20T16:12:39.808Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}