Open
Description
This input:
namespace
{
template < typename _CharT, typename = _CharT > class basic_ostream;
template < typename, typename > class basic_ios
{
};
template < typename _CharT, typename _Traits > class basic_ostream:virtual basic_ios < _CharT,
_Traits
>
{
};
class strstreambuf
{
};
class ostrstream:basic_ostream < char >
{
strstreambuf _M_buf;
};
class LogMessage
{
class LogStream:ostrstream
{
int ctr_;
};
};
}
Command:
bindgen --output logging.rs --no-unstable-rust --whitelist-type '.*::LogMessage' --whitelist-type '.*::LogSeverity' --whitelist-type '.*::int64' --blacklist-type std::allocator --blacklist-type std::allocator_traits --blacklist-type std::__alloc_traits --opaque-type std::string --opaque-type std::basic_fbstring --opaque-type std::vector --opaque-type std::basic_ios --opaque-type std::basic_ostream --opaque-type std::basic_streambuf --generate functions,methods,types test.i -- -std=gnu++14 -x c++
Generates rust code which fails a unit test when built with --test
:
thread 'bindgen_test_layout__bindgen_mod_id_1_LogMessage_LogStream' panicked at 'assertion failed: `(left == right)` (left: `24`, right: `16`)', test.rs:66
This is the generated output is here: https://gist.github.com/jsgf/ddcc0db8b239b781d0590199cbe2ec80