{{#title Built-in bindings — Rust ♡ C++}}
In addition to all the primitive types (i32 <=> int32_t), the following common types may be used in the fields of shared structs and the arguments and returns of extern functions.
The C++ API of the rust
namespace is defined by the include/cxx.h file in the CXX GitHub repo. You will need to include this header in your C++ code when working with those types. When using Cargo and the cxx-build crate, the header is made available to you at #include "rust/cxx.h"
.
The rust
namespace additionally provides lowercase type aliases of all the types mentioned in the table, for use in codebases preferring that style. For example rust::String
, rust::Vec
may alternatively be written rust::string
, rust::vec
etc.
The following types are intended to be supported “soon” but are just not implemented yet. I don‘t expect any of these to be hard to make work but it’s a matter of designing a nice API for each in its non-native language.