diff options
author | Emilio Cobos Álvarez <emilio@crisal.io> | 2017-06-16 21:38:35 +0200 |
---|---|---|
committer | Emilio Cobos Álvarez <emilio@crisal.io> | 2017-06-16 21:41:08 +0200 |
commit | da2bc039c12fcbffe100f570bd6c61314d29dc75 (patch) | |
tree | c1685aecd7399800a2c9c14fba703b6ba9504e87 /src/codegen/mod.rs | |
parent | 56a46b20b799962418a6c741439105f7e016c12c (diff) |
codegen: Respect prepend_enum_name in constified variants.
Fixes #755
Diffstat (limited to 'src/codegen/mod.rs')
-rw-r--r-- | src/codegen/mod.rs | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/codegen/mod.rs b/src/codegen/mod.rs index 86aafa39..8d979dce 100644 --- a/src/codegen/mod.rs +++ b/src/codegen/mod.rs @@ -2264,7 +2264,8 @@ impl CodeGenerator for Enum { builder = builder.with_attr(derives); } - fn add_constant<'a>(enum_: &Type, + fn add_constant<'a>(ctx: &BindgenContext, + enum_: &Type, // Only to avoid recomputing every time. enum_canonical_name: &str, // May be the same as "variant" if it's because the @@ -2275,7 +2276,11 @@ impl CodeGenerator for Enum { enum_rust_ty: P<ast::Ty>, result: &mut CodegenResult<'a>) { let constant_name = if enum_.name().is_some() { - format!("{}_{}", enum_canonical_name, variant_name) + if ctx.options().prepend_enum_name { + format!("{}_{}", enum_canonical_name, variant_name) + } else { + variant_name.into() + } } else { variant_name.into() }; @@ -2358,7 +2363,8 @@ impl CodeGenerator for Enum { }; let existing_variant_name = entry.get(); - add_constant(enum_ty, + add_constant(ctx, + enum_ty, &name, &*mangled_name, existing_variant_name, @@ -2397,7 +2403,8 @@ impl CodeGenerator for Enum { variant_name)) }; - add_constant(enum_ty, + add_constant(ctx, + enum_ty, &name, &mangled_name, &variant_name, |