blob: 61ba14e279e7075eb1512bd72df382ec3b58af14 [file] [log] [blame] [view]
# C++ bindings for `use` statement
Crubit supports `use` statement for functions and user-defined types. For the
following Rust code:
```rust
pub use pub_module::pub_function;
pub use pub_module::pub_struct;
pub use pub_module::pub_struct2 as pub_struct3;
```
Crubit will generate the following bindings:
```cpp
using ::pub_module::pub_function;
using ::pub_module::pub_struct;
using pub_struct3 = ::pub_module::pub_struct2;
```
Currently, Crubit doesn't support the following cases:
### `use` with multiple items or glob
```rust
pub use some_module::{a, b}; // Not supported yet.
pub use some_module::*; // Not supported yet.`
```
### `use` a module
```rust
pub use some_module; // Not supported yet.
```
### `use` a non-directly public item
```rust
mod private_mod {
pub fn func() {}
}
pub use private_mod::func; // Not supported yet. `func` is not directly public
// because `private_mod` is private.
```