Lines Matching full:cxx
1 …]](https://github.com/dtolnay/cxx) [![crates-io]](https://crates.io/crates/cxx) [*
28 //! Please see **<https://cxx.rs>** for a tutorial, reference material, and
37 //! From this, CXX receives a complete picture of the boundary to perform static
41 //! If everything checks out statically, then CXX uses a pair of code generators
56 //! combination. CXX guarantees an ABI-compatible signature that both sides
75 //! <https://github.com/dtolnay/cxx>. To try it out, run `cargo run` from that
79 //! #[cxx::bridge]
129 //! - [demo/src/main.rs](https://github.com/dtolnay/cxx/blob/master/demo/src/main.rs)
130 //! - [demo/build.rs](https://github.com/dtolnay/cxx/blob/master/demo/build.rs)
131 //! - [demo/include/blobstore.h](https://github.com/dtolnay/cxx/blob/master/demo/include/blobstore.…
132 //! - [demo/src/blobstore.cc](https://github.com/dtolnay/cxx/blob/master/demo/src/blobstore.cc)
134 //! To look at the code generated in both languages for the example by the CXX
154 //! languages. The definition written within cxx::bridge is the single source
166 //! Within the `extern "Rust"` part of the CXX bridge we list the types and
168 //! to the `super` module, the parent module of the CXX bridge. You can think of
182 //! need to be defined as `extern "C"` ABI or no\_mangle. CXX will put in the
189 //! Notice that with CXX there is repetition of all the function signatures:
191 //! and again inside the cxx::bridge module, though compile-time assertions
199 //! This is because CXX fills a somewhat different role. It is a lower level
203 //! higher level bindgen-like tool on top of CXX which consumes a C++ header
205 //! the cxx::bridge, eliminating the repetition while leveraging the static
206 //! analysis safety guarantees of CXX.
208 //! But note in other ways CXX is higher level than the bindgens, with rich
216 //! By using a CXX bridge as the shared understanding between the languages,
220 //! It would also be reasonable to mix and match, using CXX bridge for the 95%
223 //! reason CXX's static restrictions get in the way. Please file an issue if you
232 //! runs CXX's C++ code generator and compiles the resulting C++ code along with
245 //! cxx-build = "1.0"
267 //! For use in non-Cargo builds like Bazel or Buck, CXX provides an alternate
270 //! built from the *gen/cmd* directory of <https://github.com/dtolnay/cxx>.
288 //! takes some practice to use CXX bridge effectively as it won't work in all
297 //! other language. With CXX we achieve that visibility and know what's on the
309 //! correct-looking code ([rust-lang/rust-bindgen#778]). CXX knows about this
348 //! The C++ API of the `rust` namespace is defined by the *include/cxx.h* file
349 //! in <https://github.com/dtolnay/cxx>. You will need to include this header in
367 #![doc(html_root_url = "https://docs.rs/cxx/1.0.91")]
404 extern crate self as cxx;
427 …r#"cxx support for no_alloc is incomplete and semver exempt; you must build with at least one of f…
483 /// shouldn't import this type with `use`. Instead, write `cxx::String`, or
490 /// shouldn't import this type with `use`. Instead, write `cxx::Vector<T>`, or