Rollup merge of #126906 - GrigorenkoPV:fixme-split_at_first, r=Mark-Simulacrum
Small fixme in core now that split_first has no codegen issues https://github.com/rust-lang/rust/issues/109328#issuecomment-1677366881 BTW, I have a crate implementing exactly this kind of an iterator: https://github.com/GrigorenkoPV/head-tail-iter and I was wondering if it would be worthwhile to try and make an ACP for it to get it included in std (or maybe itertools). My only doubt is that it kinda incentives writing O(n^2) algorithms and is not the hard to replace with a `while let` loop (just as in this PR).
This commit is contained in:
commit
fe1f83ccd7
2 changed files with 2 additions and 6 deletions
|
@ -39,9 +39,7 @@ impl ByteSlice for [u8] {
|
|||
fn parse_digits(&self, mut func: impl FnMut(u8)) -> &Self {
|
||||
let mut s = self;
|
||||
|
||||
// FIXME: Can't use s.split_first() here yet,
|
||||
// see https://github.com/rust-lang/rust/issues/109328
|
||||
while let [c, s_next @ ..] = s {
|
||||
while let Some((c, s_next)) = s.split_first() {
|
||||
let c = c.wrapping_sub(b'0');
|
||||
if c < 10 {
|
||||
func(c);
|
||||
|
|
|
@ -51,9 +51,7 @@ fn try_parse_19digits(s_ref: &mut &[u8], x: &mut u64) {
|
|||
let mut s = *s_ref;
|
||||
|
||||
while *x < MIN_19DIGIT_INT {
|
||||
// FIXME: Can't use s.split_first() here yet,
|
||||
// see https://github.com/rust-lang/rust/issues/109328
|
||||
if let [c, s_next @ ..] = s {
|
||||
if let Some((c, s_next)) = s.split_first() {
|
||||
let digit = c.wrapping_sub(b'0');
|
||||
|
||||
if digit < 10 {
|
||||
|
|
Loading…
Add table
Reference in a new issue