use super::cli_error::NoxisCliError; use super::Cli; use anyhow::Result; use tokio::io::{AsyncReadExt, AsyncWriteExt}; use tokio::net::UnixStream; #[allow(dead_code)] async fn create_us_stream(cli: &Cli) -> Result { Ok(UnixStream::connect(&cli.socket).await.map_err(|er| { NoxisCliError::NoxisDaemonMissing((&cli.socket).to_string(), er.to_string()) })?) } #[allow(dead_code)] pub async fn try_send(cli: Cli) -> Result<()> { let mut stream = create_us_stream(&cli).await?; let msg = serde_json::to_vec(&cli).map_err(|_| NoxisCliError::ToStringCliParsingParsing)?; stream .write_all(&msg) .await .map_err(|_| NoxisCliError::CliPromptCanNotBeSent)?; let mut response = Vec::new(); stream .read_to_end(&mut response) .await .map_err(|er| NoxisCliError::CliResponseReadError(er.to_string()))?; let response = String::from_utf8_lossy(&response); for line in response.lines() { println!("{}", line); } Ok(()) }