Skip to content

Commit 41c1446

Browse files
Add the 'rc' serde feature to catalyst-types in order to be able to serialize ProblemReport (#167)
1 parent 2859739 commit 41c1446

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

rust/catalyst-types/Cargo.toml

+2-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ minicbor = { version = "0.25.1", features = ["std"] }
2525
num-traits = "0.2.19"
2626
orx-concurrent-vec = "3.1.0"
2727
pallas-crypto = { version = "0.30.1", git = "https://github.com/input-output-hk/catalyst-pallas.git", rev = "9b5183c8b90b90fe2cc319d986e933e9518957b3" }
28-
serde = { version = "1.0.217", features = ["derive"] }
28+
serde = { version = "1.0.217", features = ["derive", "rc"] }
2929
thiserror = "2.0.9"
3030
base64-url = "3.0.0"
3131
uuid = { version = "1.11.0", features = ["v4", "v7", "serde"] }
@@ -36,3 +36,4 @@ tracing = "0.1.41"
3636
[dev-dependencies]
3737
ed25519-dalek = { version = "2.1.1", features = ["rand_core"] }
3838
rand = "0.8.5"
39+
serde_json = "1"

rust/catalyst-types/src/problem_report.rs

+10
Original file line numberDiff line numberDiff line change
@@ -469,4 +469,14 @@ mod tests {
469469
// The original report must have the same (problematic) state.
470470
assert!(original.is_problematic());
471471
}
472+
473+
#[test]
474+
fn serialize() {
475+
let report = ProblemReport::new("top level context");
476+
report.invalid_value("field name", "found", "constraint", "context");
477+
478+
let serialized = serde_json::to_string(&report).unwrap();
479+
let expected = r#"{"context":"top level context","report":[{"kind":{"type":"InvalidValue","field":"field name","value":"found","constraint":"constraint"},"context":"context"}]}"#;
480+
assert_eq!(serialized, expected);
481+
}
472482
}

0 commit comments

Comments
 (0)