# Attributes to fine-tune generated bindings

Crubit offers attributes to allow users to customize the functionality of the
generated bindings, such as renaming a type or function or converting Rust
values into a particular C++ type.

To use these attributes, add a dependency on
`//support:crubit_annotate`. Specific documentation for the
attributes can be seen in the docs for that library.
