# Customizing bindings using annotations

<internal link>/cpp/customizing

[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 `unsafe` in Rust, even if Crubit would otherwise
    assume it was safe, using `CRUBIT_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")`.

<!-- TODO(jeanpierreda): should we fully enumerate everything, on this page? -->

More information:

*   **Dependency**: `//support:annotations`
*   **Include**: `#include <crubit/support/annotations.h>`
*   Full API documentation:
    support/annotations.h

## Example

Given the following C++ header:

```live-snippet
cs/file:examples/cpp/unsafe_attributes/example.h symbol:SafeSignatureButAnnotatedUnsafe
```

Crubit will generate the following bindings:

```live-snippet
cs/file:examples/cpp/unsafe_attributes/example_generated.rs symbol:SafeSignatureButAnnotatedUnsafe
```
