blob: 383e461d84b6745fbfb5f1ccadd1730c909256aa [file] [log] [blame] [view]
# Attributes to fine-tune generated bindings
Crubit recognizes custom attributes to fine-tune generated bindings.
To use a Crubit attribute, you must add the following to your Rust crate:
```rust
#![feature(register_tool)]
#![register_tool(__crubit)]
```
The format of the Crubit tool attributes is `#[__crubit::annotate(attribute_name="attribute_value")]`.
## `cpp_name`
This attribute overrides the name of the generated C++ bindings. For
example, the following Rust code:
```rust
#[__crubit::annotate(cpp_name="Create")]
pub fn new() -> i32 {...}
```
Will generate the following C++ bindings:
```cpp
std::int32_t Create(); // named `Create` instead of `new`.
```
Currently this attribute works on functions and structs (See b/349070421).
## `cpp_type`
TODO(b/315382130): Rename this attribute to `cpp_type` and add the doc.