もう少し文脈を明示すると
```
fn parse_and_store(&mut self, mut line: &str) {
// ...
while !line.is_empty() {
let Some(eqpos) = line.find('=') else {
// log and return
}
// ここで keyeq には行頭の "[^=]*="、 line には残りを入れたい。
// たとえば line="foo=\"bar\" baz=\"qux\"" に対して
// keyeq="foo=", line="\"bar\" baz=\"qux\""。
// line.split_at(eqpos+1) を活用したいが……
}
}
```
結局
```
let keyeq = {
let (keyeq, rest) = line.split_at(eqpos + 1);
line = rest;
keyeq
};
```
にした
べつに
```
let keyeq = &line[..=eqpos];
line = &line[(eqpos+1)..];
```
としても良いのだが、これはこれでキモいし……