#ifndef {lib_name_uppercase}_GLOBAL_H #define {lib_name_uppercase}_GLOBAL_H // This header includes system headers and declares functions // required by all regular headers of the library. // for fixed size integer types #include // placement new statements require this #include // original C++ library includes generated by cpp_to_rust {include_directives_code} #include "{lib_name_lowercase}_exports.h" // Calls destructor of `T` class. This template function // is necessary because it's not possible to use `x->~T()` // syntax directly if `T` contains `::`. template void {lib_name_lowercase}_call_destructor(T* x) {{ x->~T(); }} #endif // {lib_name_uppercase}_GLOBAL_H