From c567bcedd3549d9333f1242c5d3a388e076ae410 Mon Sep 17 00:00:00 2001 From: ysthakur <45539777+ysthakur@users.noreply.github.com> Date: Thu, 31 Aug 2023 19:21:28 -0400 Subject: [PATCH] Don't use Cell --- src/engine.rs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/engine.rs b/src/engine.rs index bdcdfda8..ea9c2448 100644 --- a/src/engine.rs +++ b/src/engine.rs @@ -1,5 +1,3 @@ -use std::cell::Cell; - use crossterm::event::{DisableBracketedPaste, EnableBracketedPaste}; use crossterm::execute; @@ -112,7 +110,7 @@ pub struct Reedline { // Stdout painter: Painter, - transient_prompt: Cell>>, + transient_prompt: Option>, // Edit Mode: Vi, Emacs edit_mode: Box, @@ -201,7 +199,7 @@ impl Reedline { history_cursor_on_excluded: false, input_mode: InputMode::Regular, painter, - transient_prompt: Cell::new(None), + transient_prompt: None, edit_mode, completer, quick_completions: false, @@ -441,8 +439,8 @@ impl Reedline { /// Set a different prompt to be used after submitting each line #[must_use] - pub fn with_transient_prompt(self, transient_prompt: Box) -> Self { - self.transient_prompt.set(Some(transient_prompt)); + pub fn with_transient_prompt(mut self, transient_prompt: Box) -> Self { + self.transient_prompt = Some(transient_prompt); self } @@ -1712,9 +1710,9 @@ impl Reedline { let buffer = self.editor.get_buffer().to_string(); self.hide_hints = true; // Additional repaint to show the content without hints etc. - if let Some(transient_prompt) = self.transient_prompt.take() { + if let Some(transient_prompt) = std::mem::replace(&mut self.transient_prompt, None) { self.repaint(transient_prompt.as_ref())?; - self.transient_prompt.set(Some(transient_prompt)); + self.transient_prompt = Some(transient_prompt); } else { self.repaint(prompt)?; }