Customizing bindings using annotations
[TOC]
The Rust bindings for a C++ declaration can be customized using an attribute
macro from <crubit/support/annotations.h>.
For instance:
- A function can be marked
unsafein Rust, even if Crubit would otherwise assume it was safe, usingCRUBIT_UNSAFE. - Missing bindings for an item can be treated as an error, instead of ignored,
using
CRUBIT_MUST_BIND. - An item can be given a different name in Rust using
CRUBIT_RUST_NAME("rust_name_here").
More information:
- Dependency:
//support:annotations - Include:
#include <crubit/support/annotations.h> - Full API documentation: support/annotations.h
Example
Given the following C++ header:
cs/file:examples/cpp/unsafe_attributes/example.h symbol:SafeSignatureButAnnotatedUnsafe
Crubit will generate the following bindings:
cs/file:examples/cpp/unsafe_attributes/example_generated.rs symbol:SafeSignatureButAnnotatedUnsafe