94ede93467
Copy all `AsciiExt` methods to the primitive types directly in order to deprecate it later **EDIT:** [this PR is ready now](https://github.com/rust-lang/rust/pull/44042#issuecomment-333883548). I edited this post to reflect the current status of discussion, which is (apart from code review) pretty much settled. --- This is my current progress in order to prepare stabilization of #39658. As discussed there (and in #39659), the idea is to deprecated `AsciiExt` and copy all methods to the type directly. Apparently there isn't really a reason to have those methods in an extension trait¹. ~~This is **work in progress**: copy&pasting code while slightly modifying the documentation isn't the most exciting thing to do. Therefore I wanted to already open this WIP PR after doing basically 1/4 of the job (copying methods to `&[u8]`, `char` and `&str` is still missing) to get some feedback before I continue. Some questions possibly worth discussing:~~ 1. ~~Does everyone agree that deprecating `AsciiExt` is a good idea? Does everyone agree with the goal of this PR?~~ => apparently yes 2. ~~Are my changes OK so far? Did I do something wrong?~~ 3. ~~The issue of the unstable-attribute is currently set to 0. I would wait until you say "Ok" to the whole thing, then create a tracking issue and then insert the correct issue id. Is that ok?~~ 4. ~~I tweaked `eq_ignore_ascii_case()`: it now takes the argument `other: u8` instead of `other: &u8`. The latter was enforced by the trait. Since we're not bound to a trait anymore, we can drop the reference, ok?~~ => I reverted this, because the interface has to match the `AsciiExt` interface exactly. ¹ ~~Could it be that we can't write `impl [u8] {}`? This might be the reason for `AsciiExt`. If that is the case: is there a good reason we can't write such an impl block? What can we do instead?~~ => we couldn't at the time this PR was opened, but Simon made it possible. /cc @SimonSapin @zackw |
||
---|---|---|
.. | ||
benches | ||
fmt | ||
hash | ||
iter | ||
num | ||
ops | ||
prelude | ||
slice | ||
str | ||
sync | ||
tests | ||
any.rs | ||
array.rs | ||
borrow.rs | ||
Cargo.toml | ||
cell.rs | ||
char_private.rs | ||
char.rs | ||
clone.rs | ||
cmp.rs | ||
convert.rs | ||
default.rs | ||
internal_macros.rs | ||
intrinsics.rs | ||
iter_private.rs | ||
lib.rs | ||
macros.rs | ||
marker.rs | ||
mem.rs | ||
nonzero.rs | ||
option.rs | ||
panicking.rs | ||
ptr.rs | ||
raw.rs | ||
result.rs | ||
tuple.rs |