pub fn next(&mut self) -> bool {
        for scan in self.plan.scans.iter_mut() {
            let is_new = next_scan(scan);
            if is_new {
                // The altered scan is one that we had not seen before.
                // Therefore, the plan is also a new one. Return that.
                return true;
            }

            // If the scan is not new, then we cycled back to the initial scan.
            // But we can still try to cycle a different scan, in the next
            // iteration. And for that different value, we can then try all
            // options for the earlier scans too.
        }

        // If we ended up here, we tried incrementing every scan, but all of
        // them cycled back to the initial one, which means we have exhausted
        // all options.
        false
    }
/// Advance to the next alternative of the plan.
///
/// Returns whether a new plan was generated. If it was, it can be inspected
/// with `get_plan()`. Returns false when all plans have been exhausted.
Advance to the next alternative of the plan.
Returns whether a new plan was generated. If it was, it can be inspected
with `get_plan()`. Returns false when all plans have been exhausted.
Advance to the next alternative of the plan . Returns whether a new plan was generated . If it was it can be inspected with ` get_plan () ` . Returns false when all plans have been exhausted .
pub fn next(&mut self) -> bool {
        for scan in self.plan.scans.iter_mut() {
            let is_new = next_scan(scan);
            if is_new {
                // The altered scan is one that we had not seen before.
                // Therefore, the plan is also a new one. Return that.
                return true;
            }
            // If the scan is not new, then we cycled back to the initial scan.
            // But we can still try to cycle a different scan, in the next
            // iteration. And for that different value, we can then try all
            // options for the earlier scans too.
        }
        // If we ended up here, we tried incrementing every scan, but all of
        // them cycled back to the initial one, which means we have exhausted
        // all options.
        false
    }
pub fn next ( & mut self ) -> bool { for scan in self . plan . scans . iter_mut ( ) { let is_new = next_scan ( scan ) ; if is_new { // The altered scan is one that we had not seen before. // Therefore, the plan is also a new one. Return that. return true ; } // If the scan is not new, then we cycled back to the initial scan. // But we can still try to cycle a different scan, in the next // iteration. And for that different value, we can then try all // options for the earlier scans too. } // If we ended up here, we tried incrementing every scan, but all of // them cycled back to the initial one, which means we have exhausted // all options. false }
Advance to the next alternative of the plan.
Advance to the next alternative of the plan .
&mut self
&mut self