about summary refs log tree commit diff
path: root/compiler/rustc_interface/src
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2025-01-23 19:54:23 +0100
committerGitHub <noreply@github.com>2025-01-23 19:54:23 +0100
commit08d5b2303ac50f5a1fb37f2ea11f37f435cf7321 (patch)
tree49d1ee4fd4c54aed02c41319557d53cd3812b8c6 /compiler/rustc_interface/src
parent99768c80a1c094a5cfc3b25a04e7a99de7210eae (diff)
parent865471f99b315f603ed2085344381b46dbc6e55a (diff)
downloadrust-08d5b2303ac50f5a1fb37f2ea11f37f435cf7321.tar.gz
rust-08d5b2303ac50f5a1fb37f2ea11f37f435cf7321.zip
Rollup merge of #135073 - joshtriplett:bstr, r=BurntSushi
Implement `ByteStr` and `ByteString` types

Approved ACP: https://github.com/rust-lang/libs-team/issues/502
Tracking issue: https://github.com/rust-lang/rust/issues/134915

These types represent human-readable strings that are conventionally,
but not always, UTF-8. The `Debug` impl prints non-UTF-8 bytes using
escape sequences, and the `Display` impl uses the Unicode replacement
character.

This is a minimal implementation of these types and associated trait
impls. It does not add any helper methods to other types such as `[u8]`
or `Vec<u8>`.

I've omitted a few implementations of `AsRef`, `AsMut`, and `Borrow`,
when those would be the second implementation for a type (counting the
`T` impl), to avoid potential inference failures. We can attempt to add
more impls later in standalone commits, and run them through crater.

In addition to the `bstr` feature, I've added a `bstr_internals` feature
for APIs provided by `core` for use by `alloc` but not currently
intended for stabilization.

This API and its implementation are based *heavily* on the `bstr` crate
by Andrew Gallant (`@BurntSushi).`

r? `@BurntSushi`
Diffstat (limited to 'compiler/rustc_interface/src')
0 files changed, 0 insertions, 0 deletions