const CXX_TYPE_NAMES: &[&str] = &[
"Array",
"Box",
"OptionBox",
"SliceRef",
"MutSliceRef",
"BoxedSlice",
"ByteSliceRef",
"BoxedByteSlice",
"StrRef",
"BoxedStr",
];
const CXX_WRAPPER_NAMES: &[&str] = &[
"CBox",
"COptionBox",
"CSliceRef",
"CByteSliceRef",
"CBoxedSlice",
"CBoxedByteSlice",
"CStrRef",
"CBoxedStr",
"CharStrRef",
];
#[must_use]
pub fn with_cxx_ffi_types(builder: cbindgen::Builder) -> cbindgen::Builder {
with_cxx_ffi_types_with_namespace(builder, "ffi_types")
}
#[must_use]
pub fn with_cxx_ffi_types_with_namespace(
mut builder: cbindgen::Builder,
namespace: &str,
) -> cbindgen::Builder {
for name in CXX_TYPE_NAMES {
builder = builder.exclude_item(name);
builder = builder.rename_item(name, &alloc::format!("{namespace}::{name}").as_str());
}
for name in CXX_WRAPPER_NAMES {
builder = builder.exclude_item(name);
builder = builder.rename_item(name, &alloc::format!("{namespace}::{name}").as_str());
}
builder
}