# Rust bindings for the C++ standard library

This directory contains the `cc_std` Rust crate - the crate generated by
`rs_bindings_from_cc` and providing bindings for the C++ standard library.   For
example this crate provides:

- The `cc_std::std::string_view` type alias (corresponding to
  [`std::string_view`](https://en.cppreference.com/w/cpp/header/string_view)
  in C++)
- The `cc_std::tm` struct (corresponding to
  [`tm`](https://en.cppreference.com/w/c/chrono/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 string_view`
