This directory contains the cc_std Rust crate - the crate generated by rs_bindings_from_cc and providing bindings for the C++ standard library. To depend on it, add the following to your rust_library rule:
cc_deps = ["//support/public:cc_std"]
This crate provides, for example:
cc_std::std::raw_string_view type alias (corresponding to std::string_view in C++)cc_std::tm struct (corresponding to tm in C++)In addition to automatically generated bindings, the crate also provides manually authored trait implementations that supplement the automated bindings. For example:
impl From<&'static str> for raw_string_viewThe source code for cc_std is a combination of the automatically generated bindings for the C++ standard library, and auxiliary Rust code which is live-at-head, and lives in the a parallel cc_std_impl directory.
cc_std can be snapshotted and released as part of a release process. Backwards-incompatible changes which must go out with a release can be implemented as feature flags, but the actual source code is always read at head.