diff options
| author | sigoden <sigoden@gmail.com> | 2023-11-02 09:53:54 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-02 09:53:54 +0800 |
| commit | 444f4ebe9de8aa68afdf8d39b734a8543b9b5c4b (patch) | |
| tree | d8b0e16faa0270fda2a6c7afa5fe18c1970b9a93 /src/render/repl.rs | |
| parent | 5c7bfd92ff3e557477969be9db0638ef0d3d3659 (diff) | |
| download | aichat-444f4ebe9de8aa68afdf8d39b734a8543b9b5c4b.tar.gz | |
refactor: improve code quanity (#196)
- rewrite Repl, remove ReplHandler
- move ReplyStreamHandler to repl/ and rename it to ReplyHandler
- deprecate utils::print_now
- refactor session info
Diffstat (limited to 'src/render/repl.rs')
| -rw-r--r-- | src/render/repl.rs | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/render/repl.rs b/src/render/repl.rs index 7363923..efad0e7 100644 --- a/src/render/repl.rs +++ b/src/render/repl.rs @@ -1,6 +1,6 @@ -use super::MarkdownRender; +use super::{MarkdownRender, ReplyEvent}; -use crate::repl::{ReplyStreamEvent, SharedAbortSignal}; +use crate::repl::AbortSignal; use crate::utils::split_line_tail; use anyhow::Result; @@ -18,9 +18,9 @@ use std::{ use textwrap::core::display_width; pub fn repl_render_stream( - rx: &Receiver<ReplyStreamEvent>, + rx: &Receiver<ReplyEvent>, render: &mut MarkdownRender, - abort: &SharedAbortSignal, + abort: &AbortSignal, ) -> Result<()> { enable_raw_mode()?; let mut stdout = io::stdout(); @@ -33,9 +33,9 @@ pub fn repl_render_stream( } fn repl_render_stream_inner( - rx: &Receiver<ReplyStreamEvent>, + rx: &Receiver<ReplyEvent>, render: &mut MarkdownRender, - abort: &SharedAbortSignal, + abort: &AbortSignal, writer: &mut Stdout, ) -> Result<()> { let mut last_tick = Instant::now(); @@ -51,7 +51,7 @@ fn repl_render_stream_inner( if let Ok(evt) = rx.try_recv() { match evt { - ReplyStreamEvent::Text(text) => { + ReplyEvent::Text(text) => { let (col, mut row) = cursor::position()?; // fix unexpected duplicate lines on kitty, see https://github.com/sigoden/aichat/issues/105 @@ -95,7 +95,7 @@ fn repl_render_stream_inner( writer.flush()?; } - ReplyStreamEvent::Done => { + ReplyEvent::Done => { #[cfg(target_os = "windows")] let eol = "\n\n"; #[cfg(not(target_os = "windows"))] |
