use bindgen::{self, Builder, EnumVariation}; pub fn user_builder() -> Builder { bindgen::builder() .use_core() .layout_tests(false) .generate_comments(false) .prepend_enum_name(false) .default_enum_style(EnumVariation::Rust { non_exhaustive: false, }) } pub fn bpf_builder() -> Builder { bindgen::builder() .use_core() .ctypes_prefix("::aya_bpf::cty") .layout_tests(false) .generate_comments(false) .clang_arg("-Wno-unknown-attributes") .default_enum_style(EnumVariation::ModuleConsts) .prepend_enum_name(false) // NOTE(vadorovsky): It's a workaround for the upstream bindgen issue: // https://github.com/rust-lang/rust-bindgen/issues/2083 // tl;dr: Rust nightly complains about #[repr(packed)] structs deriving // Debug without Copy. // It needs to be fixed properly upstream, but for now we have to // disable Debug derive here. .derive_debug(false) }