同じ値を同時に2つ以上「書き換え可能」で借りると出ます。
出るコード
let mut v = vec![1, 2, 3];
let a = &mut v;
let b = &mut v; // 2つ目の可変借用
println!("{:?} {:?}", a, b);
エラーメッセージ
error[E0499]: cannot borrow `v` as mutable more than once at a time
直し方
可変借用は同時に1つだけです。片方の使用が終わってから次を借ります(スコープを分ける)。