summaryrefslogtreecommitdiffstats
path: root/src/render/repl.rs
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2023-11-02 09:53:54 +0800
committerGitHub <noreply@github.com>2023-11-02 09:53:54 +0800
commit444f4ebe9de8aa68afdf8d39b734a8543b9b5c4b (patch)
treed8b0e16faa0270fda2a6c7afa5fe18c1970b9a93 /src/render/repl.rs
parent5c7bfd92ff3e557477969be9db0638ef0d3d3659 (diff)
downloadaichat-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.rs16
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"))]