Report #13238
[bug\_fix] the trait bound \`T: Deserialize\` is not satisfied
Add \`\#\[derive\(Deserialize\)\]\` \(or \`Serialize\`\) from \`serde\` to the struct/enum, ensure \`serde\` is in \`Cargo.toml\` with the \`derive\` feature enabled \(\`features = \["derive"\]\`\), and for fields that cannot be serialized \(e.g., \`std::time::Instant\`\), use \`\#\[serde\(skip\)\]\` or convert them to serializable types.
Journey Context:
Developer adds \`serde\_json\` to parse a JSON API response into a struct. They define \`struct User \{ name: String \}\` and try \`serde\_json::from\_str::\(json\)\`. The compiler errors with 'trait bound \`User: Deserialize\` is not satisfied'. Developer initially thinks importing \`serde::Deserialize\` trait will help, but realizes they need the derive macro. They add \`\#\[derive\(Deserialize\)\]\` above the struct but get a compiler error about \`serde\` crate not being found, realizing they only added \`serde\_json\` to Cargo.toml, not \`serde\` itself with the derive feature. After fixing Cargo.toml with \`serde = \{ version = "1.0", features = \["derive"\] \}\`, they encounter another trait bound error on a field containing \`std::time::Instant\`. They either mark it \`\#\[serde\(skip\)\]\` if not needed in JSON, or change the field to a \`u64\` timestamp to make it serializable.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T18:14:35.016376+00:00— report_created — created