{"record":{"id":"c57bd8a6b880f055","repo":"juspay/hyperswitch","slug":"expected-target-type","errorCode":null,"errorMessage":"expected `target = Type`","messagePattern":"expected `target = Type`","errorType":"validation","errorClass":"syn::Error","httpStatus":null,"severity":"error","filePath":"crates/router_derive/src/macros/apply_changeset.rs","lineNumber":13,"sourceCode":"use quote::quote;\nuse syn::{parse::Parse, ItemStruct, Path, Token};\n\n/// Parsed contents of `#[apply_changeset(target = TargetType)]`\nstruct ApplyChangesetAttr {\n    target: Path,\n}\n\nimpl Parse for ApplyChangesetAttr {\n    fn parse(input: syn::parse::ParseStream<'_>) -> syn::Result<Self> {\n        let ident: syn::Ident = input.parse()?;\n        if ident != \"target\" {\n            return Err(syn::Error::new(ident.span(), \"expected `target = Type`\"));\n        }\n        input.parse::<Token![=]>()?;\n        let target: Path = input.parse()?;\n        Ok(Self { target })\n    }\n}\n\npub(crate) fn apply_changeset_attribute(\n    args: proc_macro2::TokenStream,\n    input: proc_macro2::TokenStream,\n) -> syn::Result<proc_macro2::TokenStream> {\n    let apply_attr: ApplyChangesetAttr = syn::parse2(args)?;\n    let target_type = apply_attr.target;\n\n    // Parse the annotated struct\n    let mut item: ItemStruct = syn::parse2(input)?;\n    let struct_name = &item.ident;\n    let generics = &item.generics;","sourceCodeStart":1,"sourceCodeEnd":31,"githubUrl":"https://github.com/juspay/hyperswitch/blob/705a3219504c3cf9034e71d956455f8834ea4e64/crates/router_derive/src/macros/apply_changeset.rs#L1-L31","documentation":"Error \"expected `target = Type`\" thrown in juspay/hyperswitch.","triggerScenarios":"Thrown at crates/router_derive/src/macros/apply_changeset.rs:13 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use the attribute in the form target = Type (e.g. #[changeset_options(target = PaymentAttemptUpdate)])"],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"705a3219504c3cf9034e71d956455f8834ea4e64","analyzedAt":"2026-08-19T10:36:43.745Z","contentChangedAt":"2026-08-19T10:36:43.745Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}