diff --git a/Cargo.lock b/Cargo.lock index c78e539..ad45522 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -682,6 +682,9 @@ dependencies = [ [[package]] name = "shared" version = "0.1.0" +dependencies = [ + "serde", +] [[package]] name = "signal-hook-registry" diff --git a/client/src/main.rs b/client/src/main.rs index 17c143e..1e4a3b1 100644 --- a/client/src/main.rs +++ b/client/src/main.rs @@ -3,22 +3,10 @@ use ringbuf::{ HeapRb, traits::{Consumer, Observer, Producer, Split}, }; -use serde::{Deserialize, Serialize}; +use shared::{ConectionResponse, ResponseStatus}; use std::sync::Arc; use tokio::net::{TcpStream, UdpSocket}; -#[derive(Serialize, Deserialize, PartialEq)] -enum ResponseStatus { - Ok, - Err, -} - -#[derive(Serialize, Deserialize)] -struct ConectionResponse { - status: ResponseStatus, - client_id: u32, -} - #[tokio::main] async fn main() { let server_address = "127.0.0.1:8080"; @@ -34,15 +22,13 @@ async fn main() { match tcp_stream.try_read(&mut tcp_buf) { Ok(n) => { - // let connection_response = str::from_utf8(&tcp_buf[0..n]).expect("failed to create str"); - let connection_response: ConectionResponse = serde_json::from_slice(&tcp_buf[0..n]).unwrap(); session_client_id = connection_response.client_id; println!( - "tcp response status: {}, clientId: {}", + "tcp response status Ok: {}, clientId: {}", connection_response.status == ResponseStatus::Ok, connection_response.client_id ); diff --git a/server/src/main.rs b/server/src/main.rs index 1dc72ae..59d39ec 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -1,7 +1,6 @@ -use serde::{Deserialize, Serialize}; +use shared::{ConectionResponse, ResponseStatus}; use std::sync::Arc; use std::{collections::HashMap, net::SocketAddr}; - use tokio::io::AsyncWriteExt; use tokio::{ net::{TcpListener, UdpSocket}, @@ -15,18 +14,6 @@ struct Client { type State = Arc>>; -#[derive(Serialize, Deserialize)] -enum ResponseStatus { - Ok, - Err, -} - -#[derive(Serialize, Deserialize)] -struct ConectionResponse { - status: ResponseStatus, - client_id: u32, -} - #[tokio::main] async fn main() { let listen_address = "0.0.0.0:8080"; diff --git a/shared/Cargo.toml b/shared/Cargo.toml index 5e22169..cf64502 100644 --- a/shared/Cargo.toml +++ b/shared/Cargo.toml @@ -4,3 +4,4 @@ version = "0.1.0" edition = "2024" [dependencies] +serde = { version = "1.0.229", features = ["derive"] } diff --git a/shared/src/lib.rs b/shared/src/lib.rs index b93cf3f..513c4bc 100644 --- a/shared/src/lib.rs +++ b/shared/src/lib.rs @@ -1,14 +1,13 @@ -pub fn add(left: u64, right: u64) -> u64 { - left + right +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize, PartialEq)] +pub enum ResponseStatus { + Ok, + Err, } -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn it_works() { - let result = add(2, 2); - assert_eq!(result, 4); - } +#[derive(Serialize, Deserialize)] +pub struct ConectionResponse { + pub status: ResponseStatus, + pub client_id: u32, }