summaryrefslogtreecommitdiffstats
path: root/src/repl
diff options
context:
space:
mode:
Diffstat (limited to 'src/repl')
-rw-r--r--src/repl/handler.rs13
-rw-r--r--src/repl/mod.rs5
2 files changed, 6 insertions, 12 deletions
diff --git a/src/repl/handler.rs b/src/repl/handler.rs
index 53cdd98..e512cb5 100644
--- a/src/repl/handler.rs
+++ b/src/repl/handler.rs
@@ -1,4 +1,4 @@
-use crate::client::Client;
+use crate::client::init_client;
use crate::config::SharedConfig;
use crate::print_now;
use crate::render::render_stream;
@@ -26,7 +26,6 @@ pub enum ReplCmd {
#[allow(clippy::module_name_repetitions)]
pub struct ReplCmdHandler {
- client: Box<dyn Client>,
config: SharedConfig,
reply: RefCell<String>,
abort: SharedAbortSignal,
@@ -34,14 +33,9 @@ pub struct ReplCmdHandler {
impl ReplCmdHandler {
#[allow(clippy::unnecessary_wraps)]
- pub fn init(
- client: Box<dyn Client>,
- config: SharedConfig,
- abort: SharedAbortSignal,
- ) -> Result<Self> {
+ pub fn init(config: SharedConfig, abort: SharedAbortSignal) -> Result<Self> {
let reply = RefCell::new(String::new());
Ok(Self {
- client,
config,
reply,
abort,
@@ -57,9 +51,10 @@ impl ReplCmdHandler {
}
self.config.read().maybe_print_send_tokens(&input);
let wg = WaitGroup::new();
+ let client = init_client(self.config.clone())?;
let ret = render_stream(
&input,
- self.client.as_ref(),
+ client.as_ref(),
&self.config,
true,
self.abort.clone(),
diff --git a/src/repl/mod.rs b/src/repl/mod.rs
index ce640f8..311ca72 100644
--- a/src/repl/mod.rs
+++ b/src/repl/mod.rs
@@ -9,7 +9,6 @@ pub use self::abort::*;
pub use self::handler::*;
pub use self::init::Repl;
-use crate::client::Client;
use crate::config::SharedConfig;
use crate::print_now;
use crate::term;
@@ -35,9 +34,9 @@ pub const REPL_COMMANDS: [(&str, &str); 13] = [
];
impl Repl {
- pub fn run(&mut self, client: Box<dyn Client>, config: SharedConfig) -> Result<()> {
+ pub fn run(&mut self, config: SharedConfig) -> Result<()> {
let abort = AbortSignal::new();
- let handler = ReplCmdHandler::init(client, config, abort.clone())?;
+ let handler = ReplCmdHandler::init(config, abort.clone())?;
print_now!("Welcome to aichat {}\n", env!("CARGO_PKG_VERSION"));
print_now!("Type \".help\" for more information.\n");
let mut already_ctrlc = false;