diff options
author | Emilio Cobos Álvarez <emilio@crisal.io> | 2020-06-29 03:19:18 +0200 |
---|---|---|
committer | Emilio Cobos Álvarez <emilio@crisal.io> | 2020-06-29 13:08:03 +0200 |
commit | 30ac96231ad4d8af8a92a5f83043bd61682691d5 (patch) | |
tree | 1e6a2d95c91510d3242749276e8e3fd1cbbbc708 | |
parent | a492a9ea9dbad164bdb7af6b43162e222c251923 (diff) |
lib: Stop using count() to do for loops.
This itched me when reviewing #1816. Seems easier to switch those to
loop over `get_items()`, but this patch also deduplicates the code a
bit, because all that copy-pasta was also itching me.
These flags don't have ordering dependencies, so the result builder
should be equivalent.
-rw-r--r-- | src/lib.rs | 231 |
1 files changed, 36 insertions, 195 deletions
@@ -255,131 +255,46 @@ impl Builder { ) } - self.options - .bitfield_enums - .get_items() - .iter() - .map(|item| { - output_vector.push("--bitfield-enum".into()); - output_vector.push(item.to_owned()); - }) - .count(); - - self.options - .newtype_enums - .get_items() - .iter() - .map(|item| { - output_vector.push("--newtype-enum".into()); - output_vector.push(item.to_owned()); - }) - .count(); - - self.options - .rustified_enums - .get_items() - .iter() - .map(|item| { - output_vector.push("--rustified-enum".into()); - output_vector.push(item.to_owned()); - }) - .count(); - - self.options - .rustified_non_exhaustive_enums - .get_items() - .iter() - .map(|item| { - output_vector.push("--rustified-enum-non-exhaustive".into()); - output_vector.push(item.to_owned()); - }) - .count(); - - self.options - .constified_enum_modules - .get_items() - .iter() - .map(|item| { - output_vector.push("--constified-enum-module".into()); - output_vector.push(item.to_owned()); - }) - .count(); - - self.options - .constified_enums - .get_items() - .iter() - .map(|item| { - output_vector.push("--constified-enum".into()); - output_vector.push(item.to_owned()); - }) - .count(); - if self.options.default_alias_style != Default::default() { output_vector.push("--default-alias-style=".into()); output_vector .push(self.options.default_alias_style.as_str().into()); } - self.options - .type_alias - .get_items() - .iter() - .map(|item| { - output_vector.push("--type-alias".into()); - output_vector.push(item.to_owned()); - }) - .count(); - - self.options - .new_type_alias - .get_items() - .iter() - .map(|item| { - output_vector.push("--new-type-alias".into()); - output_vector.push(item.to_owned()); - }) - .count(); - - self.options - .new_type_alias_deref - .get_items() - .iter() - .map(|item| { - output_vector.push("--new-type-alias-deref".into()); - output_vector.push(item.to_owned()); - }) - .count(); - - self.options - .blacklisted_types - .get_items() - .iter() - .map(|item| { - output_vector.push("--blacklist-type".into()); - output_vector.push(item.to_owned()); - }) - .count(); - - self.options - .blacklisted_functions - .get_items() - .iter() - .map(|item| { - output_vector.push("--blacklist-function".into()); - output_vector.push(item.to_owned()); - }) - .count(); + let regex_sets = &[ + (&self.options.bitfield_enums, "--bitfield-enum"), + (&self.options.newtype_enums, "--newtype-enum"), + (&self.options.rustified_enums, "--rustified-enum"), + ( + &self.options.rustified_non_exhaustive_enums, + "--rustified-enum-non-exhaustive", + ), + ( + &self.options.constified_enum_modules, + "--constified-enum-module", + ), + (&self.options.constified_enums, "--constified-enum"), + (&self.options.type_alias, "--type-alias"), + (&self.options.new_type_alias, "--new-type-alias"), + (&self.options.new_type_alias_deref, "--new-type-alias-deref"), + (&self.options.blacklisted_types, "--blacklist-type"), + (&self.options.blacklisted_functions, "--blacklist-function"), + (&self.options.blacklisted_items, "--blacklist-item"), + (&self.options.opaque_types, "--opaque-type"), + (&self.options.whitelisted_functions, "--whitelist-function"), + (&self.options.whitelisted_types, "--whitelist-type"), + (&self.options.whitelisted_vars, "--whitelist-var"), + (&self.options.no_partialeq_types, "--no-partialeq"), + (&self.options.no_copy_types, "--no-copy"), + (&self.options.no_hash_types, "--no-hash"), + ]; - self.options - .blacklisted_items - .get_items() - .iter() - .map(|item| { - output_vector.push("--blacklist-item".into()); + for (set, flag) in regex_sets { + for item in set.get_items() { + output_vector.push((*flag).to_owned()); output_vector.push(item.to_owned()); - }) - .count(); + } + } if !self.options.layout_tests { output_vector.push("--no-layout-tests".into()); @@ -540,24 +455,10 @@ impl Builder { output_vector.push(wasm_import_module_name.clone()); } - self.options - .opaque_types - .get_items() - .iter() - .map(|item| { - output_vector.push("--opaque-type".into()); - output_vector.push(item.to_owned()); - }) - .count(); - - self.options - .raw_lines - .iter() - .map(|item| { - output_vector.push("--raw-line".into()); - output_vector.push(item.to_owned()); - }) - .count(); + for line in &self.options.raw_lines { + output_vector.push("--raw-line".into()); + output_vector.push(line.into()); + } if self.options.use_core { output_vector.push("--use-core".into()); @@ -567,36 +468,6 @@ impl Builder { output_vector.push("--conservative-inline-namespaces".into()); } - self.options - .whitelisted_functions - .get_items() - .iter() - .map(|item| { - output_vector.push("--whitelist-function".into()); - output_vector.push(item.to_owned()); - }) - .count(); - - self.options - .whitelisted_types - .get_items() - .iter() - .map(|item| { - output_vector.push("--whitelist-type".into()); - output_vector.push(item.to_owned()); - }) - .count(); - - self.options - .whitelisted_vars - .get_items() - .iter() - .map(|item| { - output_vector.push("--whitelist-var".into()); - output_vector.push(item.to_owned()); - }) - .count(); - if !self.options.record_matches { output_vector.push("--no-record-matches".into()); } @@ -619,36 +490,6 @@ impl Builder { output_vector.push(path.into()); } - self.options - .no_partialeq_types - .get_items() - .iter() - .map(|item| { - output_vector.push("--no-partialeq".into()); - output_vector.push(item.to_owned()); - }) - .count(); - - self.options - .no_copy_types - .get_items() - .iter() - .map(|item| { - output_vector.push("--no-copy".into()); - output_vector.push(item.to_owned()); - }) - .count(); - - self.options - .no_hash_types - .get_items() - .iter() - .map(|item| { - output_vector.push("--no-hash".into()); - output_vector.push(item.to_owned()); - }) - .count(); - // Add clang arguments output_vector.push("--".into()); |