Skip to content

Commit 8ff6980

Browse files
committed
Make binding deserialization more resilient
1 parent cb35c5b commit 8ff6980

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

inox2d/src/formats/payload.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,15 @@ fn deserialize_param(obj: JsonObject) -> InoxParseResult<(String, Param)> {
407407
fn deserialize_bindings(vals: &[json::JsonValue]) -> InoxParseResult<Vec<Binding>> {
408408
let mut bindings = Vec::new();
409409
for val in vals {
410-
bindings.push(deserialize_binding(as_object("binding", val)?)?);
410+
let Ok(binding_object) = as_object("binding", val) else {
411+
tracing::error!("Encountered binding that is not a JSON object, ignoring");
412+
continue;
413+
};
414+
415+
match deserialize_binding(binding_object) {
416+
Ok(binding) => bindings.push(binding),
417+
Err(e) => tracing::error!("Invalid binding: {e}"),
418+
}
411419
}
412420

413421
Ok(bindings)

0 commit comments

Comments
 (0)