diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2025-01-23 19:54:23 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-23 19:54:23 +0100 |
| commit | 08d5b2303ac50f5a1fb37f2ea11f37f435cf7321 (patch) | |
| tree | 49d1ee4fd4c54aed02c41319557d53cd3812b8c6 /library/alloc/src/lib.rs | |
| parent | 99768c80a1c094a5cfc3b25a04e7a99de7210eae (diff) | |
| parent | 865471f99b315f603ed2085344381b46dbc6e55a (diff) | |
| download | rust-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 'library/alloc/src/lib.rs')
| -rw-r--r-- | library/alloc/src/lib.rs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/library/alloc/src/lib.rs b/library/alloc/src/lib.rs index b4f08debc93..28e4217e303 100644 --- a/library/alloc/src/lib.rs +++ b/library/alloc/src/lib.rs @@ -102,6 +102,8 @@ #![feature(async_fn_traits)] #![feature(async_iterator)] #![feature(box_uninit_write)] +#![feature(bstr)] +#![feature(bstr_internals)] #![feature(clone_to_uninit)] #![feature(coerce_unsized)] #![feature(const_eval_select)] @@ -228,6 +230,8 @@ mod boxed { pub use std::boxed::Box; } pub mod borrow; +#[unstable(feature = "bstr", issue = "134915")] +pub mod bstr; pub mod collections; #[cfg(all(not(no_rc), not(no_sync), not(no_global_oom_handling)))] pub mod ffi; |
