Commit Graph

7 Commits

Author SHA1 Message Date
Pavel Grigorenko cd314dead1 Remove named lifetimes in some PartialOrd & PartialEq impls 2026-02-14 00:13:46 +03:00
bjorn3 ae5687e4b0 Fully test the alloc crate through alloctests
For the tests that make use of internal implementation details, we
include the module to test using #[path] in alloctests now.
2025-03-07 19:11:13 +00:00
Josh Triplett 022e7c0bb9 Add doc aliases for BStr and BString 2025-01-22 09:19:24 +02:00
Josh Triplett 22a4ec39fb Omit some more From impls to avoid inference failures 2025-01-12 12:27:24 +02:00
Josh Triplett 76780fa10e Support no_rc, no_sync, and no_global_oom_handling
For now, apply `no_global_oom_handling` to all of
library/alloc/src/bstr.rs . We can make it more fine-grained later.
2025-01-11 06:35:21 +02:00
Josh Triplett fc34bea69d Add #[cfg(not(test))] to some impls to work around https://github.com/rust-lang/rust/issues/135100 2025-01-11 06:35:21 +02:00
Josh Triplett 2808977e05 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`, `Borrow`,
`From`, and `PartialOrd`, when those would be the second implementation
for a type (counting the `T` impl) or otherwise may cause inference
failures. These impls are important, but we can attempt to add them
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).
2025-01-11 06:35:21 +02:00