summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Poveda Ruiz <31802960+pvdrz@users.noreply.github.com>2022-11-04 13:08:14 -0500
committerGitHub <noreply@github.com>2022-11-04 13:08:14 -0500
commitbae6170907dd27a1e854236e2cc7b4f637220977 (patch)
treefafa82779d00e8d6f447a140138c37fda958d7a2
parent7c26cd218de85dca14a1c81b86e9d143626ce036 (diff)
Clean the implementation of `Default` for `BindgenOptions` (#2332)
* Clean the implementation of `Default` for `BindgenOptions`
-rw-r--r--bindgen/lib.rs169
1 files changed, 90 insertions, 79 deletions
diff --git a/bindgen/lib.rs b/bindgen/lib.rs
index 10410734..3696c499 100644
--- a/bindgen/lib.rs
+++ b/bindgen/lib.rs
@@ -2204,103 +2204,114 @@ impl BindgenOptions {
impl Default for BindgenOptions {
fn default() -> BindgenOptions {
+ macro_rules! options {
+ ($($field:ident $(: $value:expr)?,)* --default-fields-- $($default_field:ident,)*) => {
+ BindgenOptions {
+ $($field $(: $value)*,)*
+ $($default_field: Default::default(),)*
+ }
+ };
+ }
+
let rust_target = RustTarget::default();
- BindgenOptions {
+ options! {
rust_target,
rust_features: rust_target.into(),
- blocklisted_types: Default::default(),
- blocklisted_functions: Default::default(),
- blocklisted_items: Default::default(),
- blocklisted_files: Default::default(),
- opaque_types: Default::default(),
- rustfmt_path: Default::default(),
- depfile: Default::default(),
- allowlisted_types: Default::default(),
- allowlisted_functions: Default::default(),
- allowlisted_vars: Default::default(),
- allowlisted_files: Default::default(),
- default_enum_style: Default::default(),
- bitfield_enums: Default::default(),
- newtype_enums: Default::default(),
- newtype_global_enums: Default::default(),
- rustified_enums: Default::default(),
- rustified_non_exhaustive_enums: Default::default(),
- constified_enums: Default::default(),
- constified_enum_modules: Default::default(),
- default_macro_constant_type: Default::default(),
- default_alias_style: Default::default(),
- type_alias: Default::default(),
- new_type_alias: Default::default(),
- new_type_alias_deref: Default::default(),
- default_non_copy_union_style: Default::default(),
- bindgen_wrapper_union: Default::default(),
- manually_drop_union: Default::default(),
- builtins: false,
- emit_ast: false,
- emit_ir: false,
- emit_ir_graphviz: None,
layout_tests: true,
- impl_debug: false,
- impl_partialeq: false,
derive_copy: true,
derive_debug: true,
- derive_default: false,
- derive_hash: false,
- derive_partialord: false,
- derive_ord: false,
- derive_partialeq: false,
- derive_eq: false,
- enable_cxx_namespaces: false,
- enable_function_attribute_detection: false,
- disable_name_namespacing: false,
- disable_nested_struct_naming: false,
- disable_header_comment: false,
- use_core: false,
- ctypes_prefix: None,
anon_fields_prefix: DEFAULT_ANON_FIELDS_PREFIX.into(),
convert_floats: true,
- raw_lines: vec![],
- module_lines: HashMap::default(),
- clang_args: vec![],
- input_headers: vec![],
- input_header_contents: Default::default(),
- parse_callbacks: Default::default(),
codegen_config: CodegenConfig::all(),
- conservative_inline_namespaces: false,
generate_comments: true,
- generate_inline_functions: false,
allowlist_recursively: true,
- generate_block: false,
- objc_extern_crate: false,
- block_extern_crate: false,
enable_mangling: true,
detect_include_paths: true,
- fit_macro_constants: false,
prepend_enum_name: true,
- time_phases: false,
record_matches: true,
rustfmt_bindings: true,
size_t_is_usize: true,
- rustfmt_configuration_file: None,
- no_partialeq_types: Default::default(),
- no_copy_types: Default::default(),
- no_debug_types: Default::default(),
- no_default_types: Default::default(),
- no_hash_types: Default::default(),
- must_use_types: Default::default(),
- array_pointers_in_arguments: false,
- wasm_import_module_name: None,
- dynamic_library_name: None,
- dynamic_link_require_all: false,
- respect_cxx_access_specs: false,
- translate_enum_integer_types: false,
- c_naming: false,
- force_explicit_padding: false,
- vtable_generation: false,
- sort_semantically: false,
- merge_extern_blocks: false,
- abi_overrides: Default::default(),
+
+ --default-fields--
+ blocklisted_types,
+ blocklisted_functions,
+ blocklisted_items,
+ blocklisted_files,
+ opaque_types,
+ rustfmt_path,
+ depfile,
+ allowlisted_types,
+ allowlisted_functions,
+ allowlisted_vars,
+ allowlisted_files,
+ default_enum_style,
+ bitfield_enums,
+ newtype_enums,
+ newtype_global_enums,
+ rustified_enums,
+ rustified_non_exhaustive_enums,
+ constified_enums,
+ constified_enum_modules,
+ default_macro_constant_type,
+ default_alias_style,
+ type_alias,
+ new_type_alias,
+ new_type_alias_deref,
+ default_non_copy_union_style,
+ bindgen_wrapper_union,
+ manually_drop_union,
+ builtins,
+ emit_ast,
+ emit_ir,
+ emit_ir_graphviz,
+ impl_debug,
+ impl_partialeq,
+ derive_default,
+ derive_hash,
+ derive_partialord,
+ derive_ord,
+ derive_partialeq,
+ derive_eq,
+ enable_cxx_namespaces,
+ enable_function_attribute_detection,
+ disable_name_namespacing,
+ disable_nested_struct_naming,
+ disable_header_comment,
+ use_core,
+ ctypes_prefix,
+ raw_lines,
+ module_lines,
+ clang_args,
+ input_headers,
+ input_header_contents,
+ parse_callbacks,
+ conservative_inline_namespaces,
+ generate_inline_functions,
+ generate_block,
+ objc_extern_crate,
+ block_extern_crate,
+ fit_macro_constants,
+ time_phases,
+ rustfmt_configuration_file,
+ no_partialeq_types,
+ no_copy_types,
+ no_debug_types,
+ no_default_types,
+ no_hash_types,
+ must_use_types,
+ array_pointers_in_arguments,
+ wasm_import_module_name,
+ dynamic_library_name,
+ dynamic_link_require_all,
+ respect_cxx_access_specs,
+ translate_enum_integer_types,
+ c_naming,
+ force_explicit_padding,
+ vtable_generation,
+ sort_semantically,
+ merge_extern_blocks,
+ abi_overrides,
}
}
}