Remove the merge dependency

This commit is contained in:
bjorn3 2022-01-01 17:03:24 +01:00
parent 947e9483e9
commit ad6f98cd28
3 changed files with 9 additions and 10 deletions

View file

@ -176,7 +176,6 @@ dependencies = [
"getopts",
"ignore",
"libc",
"merge",
"num_cpus",
"once_cell",
"opener",
@ -2220,12 +2219,6 @@ dependencies = [
"autocfg",
]
[[package]]
name = "merge"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10bbef93abb1da61525bbc45eeaff6473a41907d19f8f9aa5168d214e10693e9"
[[package]]
name = "minifier"
version = "0.0.41"

View file

@ -47,7 +47,6 @@ toml = "0.5"
time = "0.1"
ignore = "0.4.10"
opener = "0.5"
merge = { version = "0.1.0", default-features = false, features = ["std"] }
once_cell = "1.7.2"
[target.'cfg(windows)'.dependencies.winapi]

View file

@ -18,7 +18,6 @@ pub use crate::flags::Subcommand;
use crate::flags::{Color, Flags};
use crate::util::exe;
use build_helper::t;
use merge::Merge;
use serde::Deserialize;
macro_rules! check_ci_llvm {
@ -334,6 +333,10 @@ struct TomlConfig {
profile: Option<String>,
}
trait Merge {
fn merge(&mut self, other: Self);
}
impl Merge for TomlConfig {
fn merge(
&mut self,
@ -357,6 +360,8 @@ impl Merge for TomlConfig {
}
}
// We are using a decl macro instead of a derive proc macro here to reduce the compile time of
// rustbuild.
macro_rules! derive_merge {
($(#[$attr:meta])* struct $name:ident {
$($field:ident: $field_ty:ty,)*
@ -369,7 +374,9 @@ macro_rules! derive_merge {
impl Merge for $name {
fn merge(&mut self, other: Self) {
$(
Merge::merge(&mut self.$field, other.$field);
if !self.$field.is_some() {
self.$field = other.$field;
}
)*
}
}