Errors
When Crubit can't generate bindings for an item, it usually leaves a comment in the generated bindings explaining why, often with a link to one of the pages below. To find the comment, look at the generated bindings for C++ libraries or Rust libraries.
- Unsupported types: a type that Crubit can't bind, which also prevents bindings for every function that uses it.
- Unknown targets: a type defined in a header that none of the library‘s direct dependencies provide, so Crubit can’t tell which target owns it.
- Nested types: C++ types nested inside other types, when the snake_case module Crubit generates for them collides with another name.
- Visibility: types whose bindings are
pub(crate) and so aren't available outside their own library. - Unknown attributes: C++ or Rust attributes that Crubit doesn't understand, which cause it to skip the item.
- Bridge types as struct fields: struct or union fields whose type is a bridge type.
- Compound types containing bridge types: bridge types behind a pointer or inside another type that can't bridge its contents.
- The
Delete trait: using virtual_unique_ptr<T> with a type that has neither a virtual destructor nor a custom operator delete.