Skip to content

Commit 0bece39

Browse files
committed
derive custom rust types for enum
1 parent 18d34e8 commit 0bece39

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

crates/target_rust/src/lib.rs

+7-1
Original file line numberDiff line numberDiff line change
@@ -203,9 +203,15 @@ impl jtd_codegen::target::Target for Target {
203203
.or_default()
204204
.extend(vec!["Deserialize".to_owned(), "Serialize".to_owned()]);
205205

206+
let mut derives = vec!["Serialize", "Deserialize"];
207+
208+
if let Some(s) = metadata.get("rustCustomDerive").and_then(|v| v.as_str()) {
209+
derives.extend(s.split(","));
210+
}
211+
206212
writeln!(out)?;
207213
write!(out, "{}", description(&metadata, 0))?;
208-
writeln!(out, "#[derive(Serialize, Deserialize)]")?;
214+
writeln!(out, "#[derive({})]", derives.join(", "))?;
209215
writeln!(out, "pub enum {} {{", name)?;
210216

211217
for (index, member) in members.into_iter().enumerate() {

0 commit comments

Comments
 (0)