From 9b719d0cca52695dae23f7832e31c2597ac55207 Mon Sep 17 00:00:00 2001 From: Fintan Halpenny Date: Mon, 6 May 2024 13:09:52 +0100 Subject: [PATCH] radicle: allow for unknown fields in Project deserialization Allow unknown fields to pass through when deserializing the `Project` payload. This allows the deserialization to be more resilient when unknown fields are added, e.g. from the CLI, and improves backwards-compatability when new fields may be added in the future. Signed-off-by: Fintan Halpenny X-Clacks-Overhead: GNU Terry Pratchett --- radicle/src/identity/project.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/radicle/src/identity/project.rs b/radicle/src/identity/project.rs index 7b243d32..78ef7a60 100644 --- a/radicle/src/identity/project.rs +++ b/radicle/src/identity/project.rs @@ -47,6 +47,9 @@ impl<'de> Deserialize<'de> for Project { Name, Description, DefaultBranch, + /// A catch-all variant to allow for unknown fields + #[allow(dead_code)] + Unknown(String), } struct ProjectVisitor; @@ -86,6 +89,7 @@ impl<'de> Deserialize<'de> for Project { } default_branch = Some(map.next_value()?); } + Field::Unknown(_) => continue, } } let name = name.ok_or_else(|| de::Error::missing_field("name"))?;