diff options
| author | omagdy <omar.professional8777@gmail.com> | 2025-07-16 06:42:23 +0300 |
|---|---|---|
| committer | omagdy <omar.professional8777@gmail.com> | 2025-07-16 06:42:23 +0300 |
| commit | 18b7911c656b531fc5d7fe15245e765951f3e65e (patch) | |
| tree | 31e3d9323f9458ed0c0efb0922098a590f61717e /src/main.rs | |
| parent | a312e41beb06a59a3842ffe56a5d04c3cbef092c (diff) | |
| download | redis-rust-18b7911c656b531fc5d7fe15245e765951f3e65e.tar.xz redis-rust-18b7911c656b531fc5d7fe15245e765951f3e65e.zip | |
feat: Finished ECHO command
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs index c3a88b0..7ddd478 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,17 +5,26 @@ use std::{ thread, }; +mod resp_commands; +mod resp_parser; + +use resp_commands::RespCommands; +use resp_parser::parse; + fn handle_client(mut stream: TcpStream) { let mut buffer = [0; 512]; loop { - let _bytes_read = match stream.read(&mut buffer) { + let bytes_read = match stream.read(&mut buffer) { Ok(0) => return, // connection closed Ok(n) => n, Err(_) => return, // error occurred }; + let parsed_resp = parse(&buffer).unwrap(); + let response = RespCommands::from(parsed_resp.0).execute(); + // Hardcode PONG response for now - stream.write(b"+PONG\r\n").unwrap(); + stream.write(&response).unwrap(); // Echo the message back // if let Err(_) = stream.write_all(&buffer[..bytes_read]) { |
