fn complete(
        &mut self,
        completed_goal_depth: StackIndex,
        minimums: &mut Minimums,
    ) -> ExplorationResult {
        debug_heading!(
            "complete(completed_goal_depth={:?}, minimums={:?})",
            completed_goal_depth,
            minimums
        );

        self.stack[completed_goal_depth]
            .link
            .take_minimums(minimums);

        // Here:
        // - `table` is the index of the table we are processing
        // - `dfn` is the depth-first number of the associated goal
        // - `link` summarizes the depth-first numbers of the goals that we transitively depend on
        let StackEntry {
            table: _,
            link,
            dfn,
        } = self.stack[completed_goal_depth];

        if link.positive == dfn && link.negative == DepthFirstNumber::MAX {
            self.complete_pop(completed_goal_depth, minimums)
        } else if link.positive == dfn && link.negative >= dfn {
            self.complete_delay(completed_goal_depth, minimums)
        } else {
            Ok(FullyExplored)
        }
    }
/// This method is invoked each time we exhaust all of the
/// possibilities for exploration at the point in the stack
/// (`goal_depth`). This doesn't mean that we are finished
/// with the goal: for example, there may be a cycle, like
///
/// ```notrust
/// s :- p
/// s :- ...
/// p :- s // <-- when `complete` is invoked on `q`, we will not be done
///               exploring `s`
/// ```
This method is invoked each time we exhaust all of the
possibilities for exploration at the point in the stack
(`goal_depth`). This doesn't mean that we are finished
with the goal: for example, there may be a cycle, like


This method is invoked each time we exhaust all of the possibilities for exploration at the point in the stack ( ` goal_depth ` ) . This doesn ' t mean that we are finished with the goal : for example there may be a cycle like
fn complete(
        &mut self,
        completed_goal_depth: StackIndex,
        minimums: &mut Minimums,
    ) -> ExplorationResult {
        debug_heading!(
            "complete(completed_goal_depth={:?}, minimums={:?})",
            completed_goal_depth,
            minimums
        );
        self.stack[completed_goal_depth]
            .link
            .take_minimums(minimums);
        // Here:
        // - `table` is the index of the table we are processing
        // - `dfn` is the depth-first number of the associated goal
        // - `link` summarizes the depth-first numbers of the goals that we transitively depend on
        let StackEntry {
            table: _,
            link,
            dfn,
        } = self.stack[completed_goal_depth];
        if link.positive == dfn && link.negative == DepthFirstNumber::MAX {
            self.complete_pop(completed_goal_depth, minimums)
        } else if link.positive == dfn && link.negative >= dfn {
            self.complete_delay(completed_goal_depth, minimums)
        } else {
            Ok(FullyExplored)
        }
    }
fn complete ( & mut self , completed_goal_depth : StackIndex , minimums : & mut Minimums , ) -> ExplorationResult { debug_heading ! ( " " completed_goal_depth minimums ) ; self . stack [ completed_goal_depth ] . link . take_minimums ( minimums ) ; // Here: // - `table` is the index of the table we are processing // - `dfn` is the depth-first number of the associated goal // - `link` summarizes the depth-first numbers of the goals that we transitively depend on let StackEntry { table : _ , link , dfn , } = self . stack [ completed_goal_depth ] ; if link . positive == dfn && link . negative == DepthFirstNumber :: MAX { self . complete_pop ( completed_goal_depth , minimums ) } else if link . positive == dfn && link . negative >= dfn { self . complete_delay ( completed_goal_depth , minimums ) } else { Ok ( FullyExplored ) } }
This method is invoked each time we exhaust all of the
possibilities for exploration at the point in the stack
(`goal_depth`).
This method is invoked each time we exhaust all of the possibilities for exploration at the point in the stack ( ` goal_depth ` ) .
&mut self
completed_goal_depth
StackIndex
minimums
&mut Minimums