Skip to content

Commit

Permalink
Clean the implementation of Default for BindgenOptions
Browse files Browse the repository at this point in the history
  • Loading branch information
pvdrz committed Nov 4, 2022
1 parent 7c26cd2 commit fa47229
Showing 1 changed file with 91 additions and 80 deletions.
171 changes: 91 additions & 80 deletions bindgen/lib.rs
Expand Up @@ -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 {
rust_target,
options! {
rust_target: 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,
}
}
}
Expand Down

0 comments on commit fa47229

Please sign in to comment.