Modifying two *different* elements of a vector in one function?

Is there any way to modify two separate elements of a vector in a single scope? The borrow checker is not happy with my code. I am not sure how to procede. Do I have to wrap things with RefCell? Do I wrap each element of the vector in RefCell -- eg a vector of RefCells, each wrapping the inner struct, and then calling borrow_mut on elements as needed. Or is there another option?

The code I am working on is on github: GitHub - RobertPHeller/time_table: Model Railroad Time Table generating program and the problem function is in src/lib.rs, is TimeTableSystem::UpdateTrainStorageAtStop starting at line 985.

Probably something like...

        let (station, rStation) = match stations[istop].DuplicateStationIndex() {
            None => (&mut stations[istop], None),
            Some(rsI) => stations
                .get_disjoint_mut(istop, rsI)
                .map(|(s, r) (s, Some(r))
                .unwrap(),
        }

Hmmm... interesting.... Thanks. I that would work.