use bindgen::callbacks::*; #[derive(Debug)] struct EnumVariantRename; impl ParseCallbacks for EnumVariantRename { fn enum_variant_name( &self, _enum_name: Option<&str>, original_variant_name: &str, _variant_value: EnumVariantValue, ) -> Option { Some(format!("RENAMED_{}", original_variant_name)) } } #[derive(Debug)] struct BlocklistedTypeImplementsTrait; impl ParseCallbacks for BlocklistedTypeImplementsTrait { fn blocklisted_type_implements_trait( &self, _name: &str, derive_trait: DeriveTrait, ) -> Option { if derive_trait == DeriveTrait::Hash { Some(ImplementsTrait::No) } else { Some(ImplementsTrait::Yes) } } } pub fn lookup(cb: &str) -> Box { match cb { "enum-variant-rename" => Box::new(EnumVariantRename), "blocklisted-type-implements-trait" => { Box::new(BlocklistedTypeImplementsTrait) } _ => panic!("Couldn't find name ParseCallbacks: {}", cb), } }