| # 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. |