fn user_input()

in src/ui.rs [193:214]


    fn user_input(&self) -> Result<String> {
        let mut inner = self.inner.borrow_mut();

        if !inner.pending_actions.is_empty() {
            return Ok(inner.pending_actions.pop().unwrap());
        }

        let prompt = inner.prompt.clone();
        match inner.editor.readline(&prompt) {
            Ok(line) => {
                let line = line.trim();
                if !line.is_empty() {
                    inner.editor.add_history_entry(line);
                }
                inner.pending_actions = line.split(";").map(|it| it.trim().to_owned()).collect();
                inner.pending_actions.reverse();
                drop(inner);
                self.user_input()
            }
            Err(e) => Err(e)?,
        }
    }