gitextract_dh2rnm1j/ ├── .bazelignore ├── .bazelrc ├── .bcr/ │ ├── README.md │ ├── config.yml │ ├── metadata.template.json │ ├── presubmit.yml │ └── source.template.json ├── .buckconfig ├── .buckroot ├── .clang-format ├── .clang-tidy ├── .devcontainer/ │ ├── Dockerfile │ ├── README.md │ ├── build.Dockerfile │ └── devcontainer.json ├── .gitattributes ├── .github/ │ ├── FUNDING.yml │ └── workflows/ │ ├── buck2.yml │ ├── ci.yml │ ├── install.yml │ ├── release.yml │ └── site.yml ├── .gitignore ├── .vscode/ │ ├── README.md │ ├── launch.json │ ├── settings.json │ └── tasks.json ├── .watchmanconfig ├── BUCK ├── BUILD.bazel ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── MODULE.bazel ├── README.md ├── book/ │ ├── .gitignore │ ├── README.md │ ├── book.toml │ ├── build.js │ ├── build.sh │ ├── css/ │ │ └── cxx.css │ ├── diagram/ │ │ ├── .gitignore │ │ ├── Makefile │ │ └── overview.tex │ ├── eslint.config.mjs │ ├── package.json │ ├── src/ │ │ ├── 404.md │ │ ├── SUMMARY.md │ │ ├── async.md │ │ ├── attributes.md │ │ ├── binding/ │ │ │ ├── box.md │ │ │ ├── cxxstring.md │ │ │ ├── cxxvector.md │ │ │ ├── fn.md │ │ │ ├── rawptr.md │ │ │ ├── result.md │ │ │ ├── sharedptr.md │ │ │ ├── slice.md │ │ │ ├── str.md │ │ │ ├── string.md │ │ │ ├── uniqueptr.md │ │ │ └── vec.md │ │ ├── bindings.md │ │ ├── build/ │ │ │ ├── bazel.md │ │ │ ├── cargo.md │ │ │ ├── cmake.md │ │ │ └── other.md │ │ ├── building.md │ │ ├── concepts.md │ │ ├── context.md │ │ ├── extern-c++.md │ │ ├── extern-rust.md │ │ ├── index.md │ │ ├── reference.md │ │ ├── shared.md │ │ └── tutorial.md │ └── theme/ │ └── head.hbs ├── build.rs ├── compile_flags.txt ├── demo/ │ ├── BUCK │ ├── BUILD.bazel │ ├── Cargo.toml │ ├── build.rs │ ├── include/ │ │ └── blobstore.h │ └── src/ │ ├── blobstore.cc │ └── main.rs ├── flags/ │ ├── Cargo.toml │ └── src/ │ ├── impl.rs │ └── lib.rs ├── gen/ │ ├── README.md │ ├── build/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ └── src/ │ │ ├── cargo.rs │ │ ├── cfg.rs │ │ ├── deps.rs │ │ ├── error.rs │ │ ├── intern.rs │ │ ├── lib.rs │ │ ├── out.rs │ │ ├── paths.rs │ │ ├── target.rs │ │ └── vec.rs │ ├── cmd/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ └── src/ │ │ ├── app.rs │ │ ├── cfg.rs │ │ ├── main.rs │ │ ├── output.rs │ │ └── test.rs │ ├── lib/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ ├── src/ │ │ │ ├── error.rs │ │ │ └── lib.rs │ │ └── tests/ │ │ └── test.rs │ └── src/ │ ├── block.rs │ ├── builtin/ │ │ ├── alignmax.h │ │ ├── deleter_if.h │ │ ├── destroy.h │ │ ├── friend_impl.h │ │ ├── manually_drop.h │ │ ├── maybe_uninit.h │ │ ├── maybe_uninit_detail.h │ │ ├── ptr_len.h │ │ ├── relocatable_or_array.h │ │ ├── repr_fat.h │ │ ├── rust_error.h │ │ ├── rust_slice_uninit.h │ │ ├── rust_str_uninit.h │ │ ├── shared_ptr.h │ │ ├── trycatch.h │ │ ├── trycatch_detail.h │ │ └── vector.h │ ├── builtin.rs │ ├── cfg.rs │ ├── check.rs │ ├── error.rs │ ├── file.rs │ ├── fs.rs │ ├── guard.rs │ ├── ifndef.rs │ ├── include.rs │ ├── mod.rs │ ├── names.rs │ ├── namespace.rs │ ├── nested.rs │ ├── out.rs │ ├── pragma.rs │ └── write.rs ├── include/ │ └── cxx.h ├── macro/ │ ├── Cargo.toml │ ├── README.md │ ├── build.rs │ └── src/ │ ├── attrs.rs │ ├── cfg.rs │ ├── derive.rs │ ├── expand.rs │ ├── generics.rs │ ├── lib.rs │ ├── tests.rs │ ├── tokens.rs │ └── type_id.rs ├── reindeer.toml ├── rust-toolchain.toml ├── src/ │ ├── cxx.cc │ ├── cxx_string.rs │ ├── cxx_vector.rs │ ├── exception.rs │ ├── extern_type.rs │ ├── fmt.rs │ ├── function.rs │ ├── hash.rs │ ├── lib.rs │ ├── lossy.rs │ ├── macros/ │ │ ├── assert.rs │ │ └── mod.rs │ ├── memory.rs │ ├── opaque.rs │ ├── result.rs │ ├── rust_slice.rs │ ├── rust_str.rs │ ├── rust_string.rs │ ├── rust_type.rs │ ├── rust_vec.rs │ ├── shared_ptr.rs │ ├── symbols/ │ │ ├── exception.rs │ │ ├── mod.rs │ │ ├── rust_slice.rs │ │ ├── rust_str.rs │ │ ├── rust_string.rs │ │ └── rust_vec.rs │ ├── type_id.rs │ ├── unique_ptr.rs │ ├── unwind.rs │ ├── vector.rs │ └── weak_ptr.rs ├── syntax/ │ ├── atom.rs │ ├── attrs.rs │ ├── cfg.rs │ ├── check.rs │ ├── derive.rs │ ├── discriminant.rs │ ├── doc.rs │ ├── error.rs │ ├── file.rs │ ├── ident.rs │ ├── impls.rs │ ├── improper.rs │ ├── instantiate.rs │ ├── mangle.rs │ ├── map.rs │ ├── message.rs │ ├── mod.rs │ ├── names.rs │ ├── namespace.rs │ ├── parse.rs │ ├── pod.rs │ ├── primitive.rs │ ├── qualified.rs │ ├── query.rs │ ├── report.rs │ ├── repr.rs │ ├── resolve.rs │ ├── set.rs │ ├── signature.rs │ ├── symbol.rs │ ├── tokens.rs │ ├── toposort.rs │ ├── trivial.rs │ ├── types.rs │ ├── unpin.rs │ └── visit.rs ├── tests/ │ ├── BUCK │ ├── BUILD.bazel │ ├── README.md │ ├── compiletest.rs │ ├── cpp_compile/ │ │ ├── mod.rs │ │ └── smoke_test.rs │ ├── cpp_ui_tests.rs │ ├── cxx_gen.rs │ ├── cxx_string.rs │ ├── cxx_vector.rs │ ├── ffi/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ ├── cast.rs │ │ ├── lib.rs │ │ ├── module.rs │ │ ├── tests.cc │ │ └── tests.h │ ├── test.rs │ ├── ui/ │ │ ├── array_len_expr.rs │ │ ├── array_len_expr.stderr │ │ ├── array_len_suffix.rs │ │ ├── array_len_suffix.stderr │ │ ├── async_fn.rs │ │ ├── async_fn.stderr │ │ ├── bad_explicit_impl.rs │ │ ├── bad_explicit_impl.stderr │ │ ├── by_value_not_supported.rs │ │ ├── by_value_not_supported.stderr │ │ ├── const_fn.rs │ │ ├── const_fn.stderr │ │ ├── cxx_crate_name_qualified_cxx_string.rs │ │ ├── cxx_crate_name_qualified_cxx_string.stderr │ │ ├── data_enums.rs │ │ ├── data_enums.stderr │ │ ├── deny_elided_lifetimes.rs │ │ ├── deny_elided_lifetimes.stderr │ │ ├── deny_missing_docs.rs │ │ ├── deny_missing_docs.stderr │ │ ├── derive_bit_struct.rs │ │ ├── derive_bit_struct.stderr │ │ ├── derive_default.rs │ │ ├── derive_default.stderr │ │ ├── derive_duplicate.rs │ │ ├── derive_duplicate.stderr │ │ ├── derive_noncopy.rs │ │ ├── derive_noncopy.stderr │ │ ├── drop_shared.rs │ │ ├── drop_shared.stderr │ │ ├── duplicate_method.rs │ │ ├── duplicate_method.stderr │ │ ├── empty_enum.rs │ │ ├── empty_enum.stderr │ │ ├── empty_struct.rs │ │ ├── empty_struct.stderr │ │ ├── enum_assoc.rs │ │ ├── enum_assoc.stderr │ │ ├── enum_inconsistent.rs │ │ ├── enum_inconsistent.stderr │ │ ├── enum_match_without_wildcard.rs │ │ ├── enum_match_without_wildcard.stderr │ │ ├── enum_out_of_bounds.rs │ │ ├── enum_out_of_bounds.stderr │ │ ├── enum_overflows.rs │ │ ├── enum_overflows.stderr │ │ ├── enum_receiver.rs │ │ ├── enum_receiver.stderr │ │ ├── enum_unsatisfiable.rs │ │ ├── enum_unsatisfiable.stderr │ │ ├── expected_named.rs │ │ ├── expected_named.stderr │ │ ├── explicit_impl_of_bad_unique_ptr.rs │ │ ├── explicit_impl_of_bad_unique_ptr.stderr │ │ ├── extern_fn_abi.rs │ │ ├── extern_fn_abi.stderr │ │ ├── extern_shared_struct.rs │ │ ├── extern_shared_struct.stderr │ │ ├── extern_type_bound.rs │ │ ├── extern_type_bound.stderr │ │ ├── extern_type_generic.rs │ │ ├── extern_type_generic.stderr │ │ ├── extern_type_lifetime_bound.rs │ │ ├── extern_type_lifetime_bound.stderr │ │ ├── fallible_fnptr.rs │ │ ├── fallible_fnptr.stderr │ │ ├── function_with_body.rs │ │ ├── function_with_body.stderr │ │ ├── generic_enum.rs │ │ ├── generic_enum.stderr │ │ ├── impl_trait_for_type.rs │ │ ├── impl_trait_for_type.stderr │ │ ├── include.rs │ │ ├── include.stderr │ │ ├── lifetime_extern_cxx.rs │ │ ├── lifetime_extern_cxx.stderr │ │ ├── lifetime_extern_rust.rs │ │ ├── lifetime_extern_rust.stderr │ │ ├── missing_unsafe.rs │ │ ├── missing_unsafe.stderr │ │ ├── multiple_parse_error.rs │ │ ├── multiple_parse_error.stderr │ │ ├── mut_return.rs │ │ ├── mut_return.stderr │ │ ├── non_integer_discriminant_enum.rs │ │ ├── non_integer_discriminant_enum.stderr │ │ ├── nonempty_impl_block.rs │ │ ├── nonempty_impl_block.stderr │ │ ├── nonlocal_rust_type.rs │ │ ├── nonlocal_rust_type.stderr │ │ ├── opaque_autotraits.rs │ │ ├── opaque_autotraits.stderr │ │ ├── opaque_not_sized.rs │ │ ├── opaque_not_sized.stderr │ │ ├── pin_mut_alias.rs │ │ ├── pin_mut_alias.stderr │ │ ├── pin_mut_opaque.rs │ │ ├── pin_mut_opaque.stderr │ │ ├── ptr_in_fnptr.rs │ │ ├── ptr_in_fnptr.stderr │ │ ├── ptr_missing_unsafe.rs │ │ ├── ptr_missing_unsafe.stderr │ │ ├── ptr_no_const_mut.rs │ │ ├── ptr_no_const_mut.stderr │ │ ├── ptr_unsupported.rs │ │ ├── ptr_unsupported.stderr │ │ ├── raw_ident_namespace.rs │ │ ├── raw_ident_namespace.stderr │ │ ├── reference_to_reference.rs │ │ ├── reference_to_reference.stderr │ │ ├── repr_align_suffixed.rs │ │ ├── repr_align_suffixed.stderr │ │ ├── repr_unsupported.rs │ │ ├── repr_unsupported.stderr │ │ ├── reserved_lifetime.rs │ │ ├── reserved_lifetime.stderr │ │ ├── reserved_name.rs │ │ ├── reserved_name.stderr │ │ ├── result_no_display.rs │ │ ├── result_no_display.stderr │ │ ├── root_namespace.rs │ │ ├── root_namespace.stderr │ │ ├── rust_pinned.rs │ │ ├── rust_pinned.stderr │ │ ├── self_lifetimes.rs │ │ ├── self_lifetimes.stderr │ │ ├── self_type_and_receiver.rs │ │ ├── self_type_and_receiver.stderr │ │ ├── slice_of_pinned.rs │ │ ├── slice_of_pinned.stderr │ │ ├── slice_of_type_alias.rs │ │ ├── slice_of_type_alias.stderr │ │ ├── slice_unsupported.rs │ │ ├── slice_unsupported.stderr │ │ ├── struct_align.rs │ │ ├── struct_align.stderr │ │ ├── struct_cycle.rs │ │ ├── struct_cycle.stderr │ │ ├── type_alias_rust.rs │ │ ├── type_alias_rust.stderr │ │ ├── undeclared_lifetime.rs │ │ ├── undeclared_lifetime.stderr │ │ ├── unique_ptr_as_mut.rs │ │ ├── unique_ptr_as_mut.stderr │ │ ├── unique_ptr_to_opaque.rs │ │ ├── unique_ptr_to_opaque.stderr │ │ ├── unique_ptr_twice.rs │ │ ├── unique_ptr_twice.stderr │ │ ├── unnamed_receiver.rs │ │ ├── unnamed_receiver.stderr │ │ ├── unpin_impl.rs │ │ ├── unpin_impl.stderr │ │ ├── unrecognized_receiver.rs │ │ ├── unrecognized_receiver.stderr │ │ ├── unsupported_elided.rs │ │ ├── unsupported_elided.stderr │ │ ├── vec_opaque.rs │ │ ├── vec_opaque.stderr │ │ ├── vector_autotraits.rs │ │ ├── vector_autotraits.stderr │ │ ├── wrong_type_id.rs │ │ └── wrong_type_id.stderr │ └── unique_ptr.rs ├── third-party/ │ ├── .cargo/ │ │ └── .gitignore │ ├── .gitignore │ ├── BUCK │ ├── BUILD.bazel │ ├── Cargo.toml │ ├── bazel/ │ │ ├── BUILD.anstyle-1.0.13.bazel │ │ ├── BUILD.bazel │ │ ├── BUILD.cc-1.2.53.bazel │ │ ├── BUILD.clap-4.5.54.bazel │ │ ├── BUILD.clap_builder-4.5.54.bazel │ │ ├── BUILD.clap_lex-0.7.7.bazel │ │ ├── BUILD.codespan-reporting-0.13.1.bazel │ │ ├── BUILD.equivalent-1.0.2.bazel │ │ ├── BUILD.find-msvc-tools-0.1.8.bazel │ │ ├── BUILD.foldhash-0.2.0.bazel │ │ ├── BUILD.hashbrown-0.16.1.bazel │ │ ├── BUILD.indexmap-2.13.0.bazel │ │ ├── BUILD.proc-macro2-1.0.105.bazel │ │ ├── BUILD.quote-1.0.43.bazel │ │ ├── BUILD.rustversion-1.0.22.bazel │ │ ├── BUILD.scratch-1.0.9.bazel │ │ ├── BUILD.serde-1.0.228.bazel │ │ ├── BUILD.serde_core-1.0.228.bazel │ │ ├── BUILD.serde_derive-1.0.228.bazel │ │ ├── BUILD.shlex-1.3.0.bazel │ │ ├── BUILD.syn-2.0.114.bazel │ │ ├── BUILD.termcolor-1.4.1.bazel │ │ ├── BUILD.unicode-ident-1.0.22.bazel │ │ ├── BUILD.unicode-width-0.2.2.bazel │ │ ├── BUILD.winapi-util-0.1.11.bazel │ │ ├── BUILD.windows-link-0.2.1.bazel │ │ ├── BUILD.windows-sys-0.61.2.bazel │ │ ├── alias_rules.bzl │ │ ├── crates.bzl │ │ └── defs.bzl │ ├── fixups/ │ │ ├── proc-macro2/ │ │ │ └── fixups.toml │ │ ├── quote/ │ │ │ └── fixups.toml │ │ ├── rustversion/ │ │ │ └── fixups.toml │ │ ├── scratch/ │ │ │ └── fixups.toml │ │ ├── serde/ │ │ │ └── fixups.toml │ │ ├── serde_core/ │ │ │ └── fixups.toml │ │ ├── serde_derive/ │ │ │ └── fixups.toml │ │ ├── winapi-util/ │ │ │ └── fixups.toml │ │ └── windows-sys/ │ │ └── fixups.toml │ └── src/ │ └── lib.rs └── tools/ ├── bazel/ │ ├── BUILD.bazel │ ├── extension.bzl │ └── rust_cxx_bridge.bzl ├── buck/ │ ├── rust_cxx_bridge.bzl │ └── toolchains/ │ └── BUCK └── cargo/ └── build.rs