diff --git a/src/cargo_ops/mod.rs b/src/cargo_ops/mod.rs index 32481eb..d72e6d5 100644 --- a/src/cargo_ops/mod.rs +++ b/src/cargo_ops/mod.rs @@ -25,6 +25,8 @@ struct Manifest { #[serde(skip_serializing_if = "Option::is_none")] pub target: Option, pub features: Option, + #[serde(rename = "patch", skip_serializing_if = "Option::is_none")] + pub patch: Option
, } impl Manifest { diff --git a/src/cargo_ops/temp_project.rs b/src/cargo_ops/temp_project.rs index f4e10a3..8bbbe53 100644 --- a/src/cargo_ops/temp_project.rs +++ b/src/cargo_ops/temp_project.rs @@ -258,6 +258,13 @@ impl<'tmp> TempProject<'tmp> { } } } + if let Some(t) = manifest.patch.as_mut() { + for (_key, patch) in t.iter_mut() { + if let Value::Table(ref mut patch) = *patch { + f(patch)?; + } + } + } Ok(()) }