diff --git a/Cargo.lock b/Cargo.lock index c167887..b784376 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1127,6 +1127,7 @@ dependencies = [ "serde_json", "thiserror 2.0.17", "tokio", + "tracing", "uuid", ] diff --git a/core/Cargo.toml b/core/Cargo.toml index 35061b4..f5d058e 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -10,6 +10,7 @@ derive_more.workspace = true serde_json.workspace = true serde.workspace = true tokio.workspace = true +tracing.workspace = true uuid.workspace = true bincode = "2.0.1" diff --git a/core/src/lib.rs b/core/src/lib.rs index 433c153..d7ba70b 100644 --- a/core/src/lib.rs +++ b/core/src/lib.rs @@ -5,5 +5,4 @@ pub mod error; pub mod events; pub mod messages; mod prelude; -pub mod rand; pub mod states; diff --git a/core/src/messages/request.rs b/core/src/messages/request.rs index 1839231..8a2af17 100644 --- a/core/src/messages/request.rs +++ b/core/src/messages/request.rs @@ -1,19 +1,16 @@ use serde::{Deserialize, Serialize}; use uuid::Uuid; -use crate::{ - messages::{ - response, - traits::{Message, RequestBody}, - }, - rand, +use crate::messages::{ + response, + traits::{Message, RequestBody}, }; // --------- serialized from the client --------- // #[derive(Clone, Serialize, Deserialize, Debug, PartialEq)] pub struct CliRequestMessage { - pub id: u32, + pub id: Uuid, pub body: T, } impl Deserialize<'de>> Message for CliRequestMessage {} @@ -22,7 +19,7 @@ impl Deserialize<'de>> Message for CliRequ #[derive(Serialize, Deserialize, Debug, PartialEq)] pub struct DaemonRequestMessage { - pub id: u32, + pub id: Uuid, pub body: DaemonRequestMessageBody, } #[derive(Serialize, Deserialize, Debug, PartialEq)] @@ -51,14 +48,14 @@ pub type BodySet = T; #[derive(Debug)] pub struct RequestBuilder { - id: u32, + id: Uuid, body: BodyState, } impl Default for RequestBuilder { fn default() -> Self { Self { - id: rand::generate_id(), + id: Uuid::new_v4(), body: BodyUnset, } } diff --git a/core/src/messages/response.rs b/core/src/messages/response.rs index a58ad58..eb64ec3 100644 --- a/core/src/messages/response.rs +++ b/core/src/messages/response.rs @@ -1,10 +1,11 @@ use serde::{Deserialize, Serialize}; +use uuid::Uuid; -use crate::{messages::traits::Message, rand, states::DaemonState}; +use crate::{messages::traits::Message, states::DaemonState}; #[derive(Clone, Serialize, Deserialize, Debug, PartialEq)] pub struct ResponseMessage { - pub id: u32, + pub id: Uuid, pub result: ResponseResult, } impl Deserialize<'de>> Message for ResponseMessage {} @@ -29,14 +30,14 @@ pub struct ResultUnset; pub type ResultSet = ResponseResult; pub struct ResponseBuilder { - id: u32, + id: Uuid, result: ResultState, } impl Default for ResponseBuilder { fn default() -> Self { Self { - id: rand::generate_id(), + id: Uuid::new_v4(), result: ResultUnset, } } diff --git a/core/src/prelude.rs b/core/src/prelude.rs index dab321e..1385a74 100644 --- a/core/src/prelude.rs +++ b/core/src/prelude.rs @@ -1,2 +1,4 @@ #![allow(unused)] +pub use tracing::{debug, error, info, trace, warn}; + pub use crate::error::{Error, Result}; diff --git a/core/src/rand.rs b/core/src/rand.rs deleted file mode 100644 index c608eca..0000000 --- a/core/src/rand.rs +++ /dev/null @@ -1,6 +0,0 @@ -use rand::Rng; - -pub fn generate_id() -> u32 { - let mut rng = rand::rng(); - rng.random() -} diff --git a/daemon/src/actors/client_connection.rs b/daemon/src/actors/client_connection.rs index d4d8a7a..f108685 100644 --- a/daemon/src/actors/client_connection.rs +++ b/daemon/src/actors/client_connection.rs @@ -118,7 +118,10 @@ impl ClientConnection { comm::send_event(&mut self.stream, DaemonEvent::Disconnected).await.unwrap(); } SessionOutput(bytes) => { - comm::send_event(&mut self.stream, DaemonEvent::Raw(bytes)).await.unwrap(); + let chunk_size = 1024; + for chunk in bytes.chunks(chunk_size) { + comm::send_event(&mut self.stream, DaemonEvent::Raw(Bytes::copy_from_slice(chunk))).await.unwrap(); + } } NewSession(session_id, session_name) => { comm::send_event(&mut self.stream, DaemonEvent::NewSession(session_id, session_name)).await.unwrap();