Remix.run Logo
loeg 11 hours ago

Not exactly -- independent subranges of the same range (as would be relevant to something like memcpy/memmove/strcpy). E.g.,

https://godbolt.org/z/YhGajnhEG

It's mentioned later in the same article you shared above.

oneshtein 2 hours ago | parent | next [-]

  fn f() {
    let mut v = vec![1, 2, 3, 4, 5];
    let (header, tail) = v.split_at_mut(1);
    b(&header[0], &mut tail[0]);
  }
Cyph0n 10 hours ago | parent | prev [-]

Gotcha. There is a split_at_mut method that splits a mutable slice reference into two. That doesn’t address the problem you had, but I think that’s best you can do with safe Rust.

loeg 9 hours ago | parent [-]

Yeah. It just isn't something the borrow checker natively understands.