fn next_instruction(&mut self) -> Option<char> {
        if self.execution_mode == Mode::Exited {
            return None;
        }

        let start = self.cursor;
        let mut value = self.current_value();
        while value.is_none() {
            if start == self.cursor {
                self.execution_mode = Mode::Exited;
                return None;
            }
            self.increment_cursor();
            value = self.current_value();
        }

        value.clone()
    }
// next_instruction retrieves the next instruction from the program
next_instruction retrieves the next instruction from the program
next_instruction retrieves the next instruction from the program
fn next_instruction(&mut self) -> Option<char> {
        if self.execution_mode == Mode::Exited {
            return None;
        }
        let start = self.cursor;
        let mut value = self.current_value();
        while value.is_none() {
            if start == self.cursor {
                self.execution_mode = Mode::Exited;
                return None;
            }
            self.increment_cursor();
            value = self.current_value();
        }
        value.clone()
    }
fn next_instruction ( & mut self ) -> Option < char > { if self . execution_mode == Mode :: Exited { return None ; } let start = self . cursor ; let mut value = self . current_value ( ) ; while value . is_none ( ) { if start == self . cursor { self . execution_mode = Mode :: Exited ; return None ; } self . increment_cursor ( ) ; value = self . current_value ( ) ; } value . clone ( ) }
next_instruction retrieves the next instruction from the program
next_instruction retrieves the next instruction from the program
&mut self
&mut self